Skip to content

Commit d86e802

Browse files
Merge pull request #522 from mulesoft/W-13570214-final-split-upstream-downstream-gr
W-13570214 final split upstream downstream gr
2 parents c01c5d9 + 08eac2c commit d86e802

20 files changed

Lines changed: 363 additions & 190 deletions

modules/ROOT/nav.adoc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@
33
* xref:api-manager-release-notes.adoc[Release Notes]
44
* xref:getting-started-proxy.adoc[Get Started with Managing an API]
55
* xref:api-instance-landing-page.adoc[Manage API Instances]
6-
** xref:create-instance-task.adoc[Add an API Instance]
7-
** xref:manage-exchange-api-task.adoc[Add an API Instance on a Self-Managed Server]
8-
** xref:configure-api-task.adoc[Configure an API Instance]
6+
** xref:add-api-instances.adoc[Add API Instances]
7+
*** xref:create-instance-task-flex.adoc[Add a Flex Gateway API Instance]
8+
*** xref:create-instance-task-mule.adoc[Add a Mule Gateway API Instance]
9+
*** xref:create-instance-task-service-mesh.adoc[Add a Service Mesh API Instance]
10+
*** xref:manage-exchange-api-task.adoc[Add an API Instance on a Self-Managed Server]
911
** xref:find-api-id-task.adoc[Obtain an API Instance ID]
1012
** xref:export-api-latest-task.adoc[Export an API Instance]
1113
** xref:access-developer-portal-task.adoc[Access the Developer Portal]
12-
** xref:edit-api-endpoint-task.adoc[Edit an API Instance Endpoint]
14+
** xref:edit-api-endpoint-task.adoc[Edit an API Instance]
1315
** xref:deprecate-api-latest-task.adoc[Deprecate an API Instance]
1416
** xref:delete-api-task.adoc[Delete an API Instance]
15-
** xref:manage-versions-instances-concept.adoc[Manage API Versions and Instances]
17+
** xref:manage-versions-instances-concept.adoc[Manage API Instance Versions]
1618
** xref:configure-multiple-credential-providers.adoc[Configure Multiple Client Provider]
1719
* xref:api-groups-landing-page.adoc[Manage API Groups]
1820
** xref:api-groups-creating-groups.adoc[Create API Groups]
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
//tag::flex-downstream[]
2+
[%header%autowidth.spread,cols="15%,35%,15%,35%"]
3+
|===
4+
| Field Name | Description | Required | Notes
5+
| *Protocol* | Specifies whether to use HTTP or HTTPS. | Yes | If you select HTTPS, specify a TLS context for inbound traffic.
6+
| *Inbound TLS* | Specifies the TLS Context used for the inbound traffic of HTTPS APIs. | No | xref:gateway::flex-conn-tls-config.adoc[Configure a TLS Context for Flex Gateway] before adding a TLS Context to your API. Only available on Flex 1.4.0+.
7+
| *Port* | Specifies the number to use if the displayed port is incorrect. | No | Port can be shared between API instances over the same Target as long as the Base paths are different. Only available on Flex 1.2.0+.
8+
| *Instance label* | Specifies a label for the API. | No | If you have multiple managed instances of the same API, add a label to differentiate each instance from the others.
9+
| *Advanced Options* | | |
10+
| *Consumer endpoint* | Specifies a proxy application's address for consumers to use for sending requests.| No |
11+
| *Client provider* | Specifies a client provider for the API. | No | Anypoint Platform acts as the client provider by default. To configure an external client provider, see xref:access-management::managing-api-clients.adoc[Client Providers].
12+
|===
13+
//end::flex-downstream[]
14+
15+
//tag::flex-upstream[]
16+
[%header%autowidth.spread,cols="15%,35%,15%,35%"]
17+
|===
18+
| Field Name | Description | Required | Notes
19+
| *Upstream URL* | The URL to access for the proxy or the API. It must end with a /. | Yes| For example, you can use the URL of your API asset in Exchange.
20+
| *Outbound TLS* | Specifies the TLS Context used for the outbound traffic. | No | xref:gateway::flex-conn-tls-config.adoc[Configure a TLS Context for Flex Gateway] before adding a TLS Context to your API. Only available on Flex 1.4.0+.
21+
|===
22+
//end::flex-upstream[]
23+
24+
//tag::service-mesh-downstream[]
25+
[%header%autowidth.spread,cols="15%,35%,15%,35%"]
26+
|===
27+
| Field Name | Description | Required | Notes
28+
| *Instance label* | Specifies a label for the API. | No | If you have multiple managed instances of the same API, add a label to differentiate each instance from the others.
29+
| *Advanced Options* | | |
30+
| *Consumer endpoint* | Specifies a proxy application's address for consumers to use for sending requests.| No |
31+
| *Client provider* | Specifies a client provider for the API. | Yes | Anypoint Platform acts as the client provider by default. To configure an external client provider, see xref:access-management::managing-api-clients.adoc[Client Providers].
32+
|===
33+
//end::service-mesh-downstream[]
34+
35+
//tag::service-mesh-upstream[]
36+
[%header%autowidth.spread,cols="15%,35%,15%,35%"]
37+
|===
38+
| Field Name | Description | Required | Notes
39+
| *Upstream URL* | The URL to access for the proxy or the API. | No | For example, you can use the URL of your API asset in Exchange.
40+
|===
41+
//end::service-mesh-upstream[]
42+
43+
//tag::mule-app-downstream[]
44+
[%header%autowidth.spread,cols="15%,35%,15%,35%"]
45+
|===
46+
| Field Name | Description | Required | Notes
47+
| *Instance label* | Specifies a label for the API. | No | If you have multiple managed instances of the same API, add a label to differentiate each instance from the others.
48+
| *Advanced Options* | | |
49+
| *Consumer endpoint* | Specifies a proxy application's address for consumers to use for sending requests.| No |
50+
| *Client provider* | Specifies a client provider for the API. | Yes | Anypoint Platform acts as the client provider by default. To configure an external client provider, see xref:access-management::managing-api-clients.adoc[Client Providers].
51+
|===
52+
//end::mule-app-downstream[]
53+
54+
//tag::mule-app-upstream[]
55+
[%header%autowidth.spread,cols="15%,35%,15%,35%"]
56+
|===
57+
| Field Name | Description | Required | Notes
58+
| *Upstream URL* | The URL to access for the proxy or the API. | No | For example, you can use the URL of your API asset in Exchange.
59+
|===
60+
//end::mule-app-upstream[]
61+
62+
//tag::mule-proxy-downstream[]
63+
[%header%autowidth.spread,cols="15%,35%,15%,35%"]
64+
|===
65+
| Field Name | Description | Required | Notes
66+
| *Protocol* | Specifies whether to use HTTP or HTTPS for the validations. | Yes | If you select HTTPS, specify a TLS context for inbound traffic.
67+
| *Inbound TLS* | Specifies the TLS context to secure inbound traffic. | No | Only available on Mule 4+. If you can't see a context, ensure that you have the correct permissions.
68+
| *Port* | Specifies the number to use if the displayed port is incorrect. | Yes |
69+
| *Base path* | Specifies the URL prefix for all API paths, relative to the host root. It must start with a leading slash /. | Yes |
70+
| *Instance label* | Specifies a label for the API. | No | If you have multiple managed instances of the same API, add a label to differentiate each instance from the others.
71+
| *Advanced Options* | | |
72+
| *Consumer endpoint* | Specifies a proxy application's address for consumers to use for sending requests.| No |
73+
| *Client provider* | Specifies a client provider for the API. | Yes | Anypoint Platform acts as the client provider by default. To configure an external client provider, see xref:access-management::managing-api-clients.adoc[Client Providers].
74+
| *Request timeout* | Specifies the duration after which a request times out. | No |
75+
| *Proxy Version* | Specifies the version of the proxy to use for the endpoint.| No |
76+
| *Enable Console* | Specifies whether you can expose and test your API specification. | No | You can specify a different path in *Console Path*, for example, "/spec/*". Only available if you have an attached API definition. Only available on Mule 3+.
77+
| *Validations* | Specifies whether to validate inbound requests against a provided specification. | No | Only available if you have an attached API definition. Only available on Mule 3+.
78+
| *Strict validations (optional)* | Specifies whether to validate inbound requests against query parameters. | No | Only available if you have an attached API definition. Only available on Mule 3+
79+
| *User Domain* | Specifies whether to use an API gateway domain. | No | If you chose *Hybrid* as the proxy deployment target previously in the configuration, ensure that you select this option. You must install the API gateway domain in Mule 3.8 and later.
80+
|===
81+
//end::mule-proxy-downstream[]
82+
83+
//tag::mule-proxy-upstream[]
84+
[%header%autowidth.spread,cols="15%,35%,15%,35%"]
85+
|===
86+
| Field Name | Description | Required | Notes
87+
| *Upstream URL* | The URL to access for the proxy or the API. | Yes| For example, you can use the URL of your API asset in Exchange.
88+
| *Outbound TLS* | Specifies the TLS context to secure outbound traffic. | No | Only available on Mule 4+. If you can't see a context, ensure that you have the correct permissions.
89+
|===
90+
//end::mule-proxy-upstream[]
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
//tag::intro1[]
2+
After you have created an API using Design Center or any other application, you can then manage that API in API Manager by adding an API instance. API instances remain under management until you delete them.
3+
4+
//end::intro1[]
5+
6+
//tag::flex-intro[]
7+
Use Flex Gateway for any APIs that need a flexible and performant API gateway
8+
that works with distributed and microservices environments and fits into your CI/CD environments.
9+
10+
//end::flex-intro[]
11+
12+
//tag::mule-intro[]
13+
Use Mule Gateway if you have APIs on Mule Runtime that need an API gateway to manage, observe,
14+
and secure your APIs.
15+
16+
//end::mule-intro[]
17+
18+
//tag::service-mesh-intro[]
19+
Use Service Mesh to extend Anypoint Platform API Management capabilities to your
20+
Istio service mesh through the deployment of a Mule Adapter.
21+
22+
//end::service-mesh-intro[]
23+
24+
//tag::intro2[]
25+
26+
There are three options for adding an API instance:
27+
28+
* <<add-api, *Add a new API:*>> Select this option to add a completely new instance of an API.
29+
* <<promote-api, *Promote API from environment:*>> Select this option if you have an API instance in a different environment, for instance
30+
the sandbox environment, and you want to promote it to the current or production environment.
31+
* <<import-api, *Import API from zip file:*>> Select this option if you have exported an API instance from a different Anypoint Platform
32+
instance.
33+
34+
When you are promoting or importing an API instance, you do not have options to alter the configuration. However, when you add a new API instance, you need to the downstream and the upstream configuration settings.
35+
36+
//end::intro2[]

modules/ROOT/pages/_partials/task-configure-proxy.adoc

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ Select the *Target type* from the following options:
3535
CloudHub 2.0 proxy includes a CPU with 0.1 vCores by default.
3636
.. Select the **Runtime version**.
3737
.. Enter a **Proxy app name**.
38+
+
39+
[NOTE]
40+
--
41+
When deploying an API directly to CloudHub 2.0, you cannot choose the region where the API is deployed. If you have a private space, your API is deployed to your private space. Otherwise, your API is deployed to the shared space in your default region. If you have multiple private spaces, a private space is chosen for you. Private spaces in your default region are chosen first. To learn more about spaces, see xref:cloudhub-2::ch2-shared-space-about.adoc[] and xref:cloudhub-2::ch2-private-space-about.adoc[].
42+
--
3843
* *CloudHub*: Select this option if you want to use the Mule runtime hosted on the cloud by MuleSoft. The
3944
CloudHub proxy includes a CPU with 0.1 vCores and a memory of 500 MB, by default.
4045
.. Select the **Runtime version**.
@@ -91,7 +96,7 @@ NOTE: After adding the API on Anypoint Platform, you will need to bind it to a s
9196

9297
** **REST API:** Select this option if you have a RAML or OAS API definition file you want to include for your asset.
9398
+
94-
Upload either a RAML or OAS file for your REST API.
99+
Upload either a RAML or OAS file for your REST API. Versions 2.0.0 and later are the recommended versions for OAS or RAML specs, because these versions add native OAS support. If you upload an OAS API specification to an API proxy version 1.0 or earlier, your API specification is translated to RAML.
95100
** **HTTP API:** Select this option if you do not have an API definition file you want to include for your asset.
96101
** **SOAP API:** Select this option if you have a WSDL API definition file or an external link to the file.
97102
+
@@ -103,7 +108,7 @@ This option is not available for Flex Gateway runtime at this time.
103108
//end::asset-type-options[]
104109
//tag::raml-oas[]
105110
.. Select **REST API** as the **Asset type**.
106-
.. Upload either a RAML or OAS file for your REST API.
111+
.. Upload either a RAML or OAS file for your REST API.
107112
+
108113
NOTE: Anypoint API Manager supports OpenAPI Specification (OAS) 3.0, with the exception of the callback feature. To work around this issue, handle the callback outside of the Mule runtime engine domain or use an OAS 3.0 specification that does not use callbacks.
109114

@@ -119,21 +124,24 @@ NOTE: Anypoint API Manager supports OpenAPI Specification (OAS) 3.0, with the ex
119124
[[configure_options]]
120125
= Configure Options
121126

122-
. Enter your *Implementation URI*. The Implementation URI is the URL to access the proxy or the API. For example, you can use the URL of your API asset in Exchange. +
123-
This is the only required field. For further details on the optional fields, see xref:configure-api-task.adoc[Configure an API Endpoint].
124-
. If you want to enable SSL for inbound traffic:
125-
** Select **HTTPS** for the **Scheme**. +
126-
You should now see the **TLS Context for Inbound Traffic** field enabled.
127-
** Select **Add TLS Context**.
128-
*** Select the secret group where you hosted your TLS context from the **Secret group** drop-down.
129-
*** Select your TLS context for your HTTPS API Proxy from the **TLS Context** drop-down.
127+
128+
. If you want to enable TSL for inbound traffic:
129+
** Select *HTTPS* for the *Scheme*. +
130+
You should now see the *Inbound TLS* field enabled.
131+
** Select *Add TLS Context*.
132+
*** Select the secret group where you hosted your TLS context from the *Secret group* drop-down.
133+
*** Select your TLS context for your HTTPS API Proxy from the *TLS Context* drop-down.
130134
. Enter the *Port* number for your API proxy.
131-
. Select your *Client Provider*.
135+
. Enter the *Base path*.
132136
. Click *Advanced Options*.
137+
. Select optional downstream configuration settings. For more configuration settings, see xref:create-instance-task-mule.adoc[].
133138
. In *Proxy Version*, select *latest*. +
134139
This value ensures that your API proxy uses the latest released proxy version.
135140
If a new proxy version is available in Anypoint platform, return to this step to reconfigure your proxy to the latest version.
136-
. Click *Add TLS Context* for *TLS Context for Outbound traffic*.
141+
. Click *Next*.
142+
. Enter your *Upstream URL*. This is the URL to access the proxy or the API. For example, you can use the URL of your API asset in Exchange. +
143+
This is the only required field. For further details on the optional fields, see xref:configure-api-task.adoc[Configure an API Endpoint].
144+
. Click *Add TLS Context* for *Outbound TLS*. This is required for API instances using HTTPs communication.
137145
.. Select the secret group where you hosted your TLS Context from the *Secret Group* drop-down list.
138146
.. Select your TLS Context for your HTTPS API Proxy from the *TLS Context* drop-down.
139147
+
@@ -144,8 +152,8 @@ If you can't see a context, check that you have the right permissions, as mentio
144152
//end::mid-steps2[]
145153
//tag::raml-oas-version[]
146154
+
147-
Versions 2.0.0 and later are the recommended versions for OAS or RAML specs, because these versions add native OAS support. +
148-
If you upload an OAS API specification to an API proxy version 1.0 or earlier, your API specification will be translated to RAML.
155+
Versions 2.0.0 and later are the recommended versions for OAS or RAML specs, because these versions add native OAS support.
156+
If you upload an OAS API specification to an API proxy version 1.0 or earlier, your API specification is translated to RAML.
149157
+
150158
//end::raml-oas-version[]
151159
//tag::tls[]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[[import-api]]
2+
== Import API from Zip File
3+
4+
. Navigate to *Anypoint Platform* > *API Manager*.
5+
. From *API Administration*, click **Add API** and select **Import API from zip file**.
6+
. Click **Choose file** and select your API instance configuration zip file.
7+
. Click **Next**.
8+
. Review and update the API Configuration details as needed and click **Save**.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[[promote-api]]
2+
== Promote API from Environment
3+
4+
. Navigate to *Anypoint Platform* > *API Manager*.
5+
. In *API Administration*, click **Add API** and select **Promote API from environment**.
6+
. Select the **Source Environment**.
7+
. Select the **API** by entering the name of the API into the search field.
8+
. Select the **API Version**.
9+
. Select the **API instance label**.
10+
. Optionally, uncheck any of the **Include in Promotion** options you want to exclude.
11+
. Click **Promote**.
12+
. Review and update the Runtime & Endpoint Configuration details as needed and click **Save**.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
= Add API Instances
2+
ifndef::env-site,env-github[]
3+
include::_attributes.adoc[]
4+
endif::[]
5+
6+
* xref:create-instance-task-flex.adoc[] +
7+
include::partial$task-add-api-instance.adoc[tags=flex-intro]
8+
* xref:create-instance-task-mule.adoc[] +
9+
include::partial$task-add-api-instance.adoc[tags=mule-intro]
10+
* xref:create-instance-task-service-mesh.adoc[] +
11+
include::partial$task-add-api-instance.adoc[tags=service-mesh-intro]
12+
* xref:manage-exchange-api-task.adoc[] +
13+
Use a Hybrid deployment type to add API instances to self-managed servers.

modules/ROOT/pages/api-instance-landing-page.adoc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
ifndef::env-site,env-github[]
33
include::_attributes.adoc[]
44
endif::[]
5+
:page-aliases: create-instance-task.adoc, configure-api-task.adoc
56
:keywords: api, instance, manager
67

78
An API instance is the instantiation of an API definition. It is an object that is used to share data between gateways and the control plane. An API instance can either be a proxy of an API that serves the upstream or a Mule application endpoint.
@@ -12,14 +13,16 @@ You can create one instance of an API version that serves as a proxy and create
1213

1314
To manage API instances in API Manager:
1415

15-
. xref:create-instance-task.adoc[Add an API Instance] - API instances are managed by API Manager after you add them and remain under management until you delete them.
16-
. xref:configure-api-task.adoc[Configure an API Instance] - You can customize your API instance to fit your specific situation with many optional settings. Not all options are available depending on the runtime as well as the API.
16+
. Add an API instance for your relevant gateway:
17+
** xref:create-instance-task-flex.adoc[Add a Flex Gateway API Instance]
18+
** xref:create-instance-task-mule.adoc[Add a Mule Gateway API Instance]
19+
** xref:create-instance-task-service-mesh.adoc[Add a Service Mesh API Instance]
1720
. View an API instance's API Summary for information about the instance or to export it:
1821
** xref:find-api-id-task.adoc[Obtain API Instance ID] - API Manager generates the apiId of new APIs managed by API Manager for use with Mule 4.
1922
** xref:export-api-latest-task.adoc[Export an API Instance] - After creating an API instance, you can export it. This exports the API instance endpoint configuration and Exchange asset relationship. You can then import it into another environment in the same business group to create a new API instance.
2023
** xref:access-developer-portal-task.adoc[Access the Developer Portal] - As an administrator, you can view the resources and methods of an API, and access other details, such as publish date and mocking service, from Anypoint Exchange (Exchange). You can view the API in an asset portal (private) or a public portal.
2124
. Modify an API instance when you no longer need the instance or when you need to update it:
22-
** xref:edit-api-endpoint-task.adoc[Edit an API Instance Endpoint] - Edit the API instance's endpoint to update its base path, port, TLS context, and more.
25+
** xref:edit-api-endpoint-task.adoc[Edit an API Instance] - Edit the API instance's configuration settings to update its base path, port, TLS context, and more.
2326
** xref:deprecate-api-latest-task.adoc[Deprecate an API Instance] - While transitioning consumers of your API to an updated instance, you can prevent developers from signing up for access to your old API instance.
2427
** xref:delete-api-task.adoc[Delete an API Instance] - You can delete an API instance and its version if you no longer need to manage it from API Manager.
2528
** xref:manage-versions-instances-concept.adoc[Manage API Versions] - After you create an API in Anypoint Platform, you configure the version details for the API and then publish it to Anypoint Exchange (Exchange). The API version resides in Exchange, and not in API Manager. However, you then manage this API version from API Manager.

0 commit comments

Comments
 (0)