Workspace Api - Create Or Update

Creates new or updates existing specified API of the workspace in an API Management service instance.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/workspaces/{workspaceId}/apis/{apiId}?api-version=2024-05-01

URI Parameters

Name In Required Type Description
apiId
path True

string

API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.

Regex pattern: ^[^*#&+:<>?]+$

resourceGroupName
path True

string

The name of the resource group. The name is case insensitive.

serviceName
path True

string

The name of the API Management service.

Regex pattern: ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$

subscriptionId
path True

string

uuid

The ID of the target subscription. The value must be an UUID.

workspaceId
path True

string

Workspace identifier. Must be unique in the current API Management service instance.

Regex pattern: ^[^*#&+:<>?]+$

api-version
query True

string

The API version to use for this operation.

Request Header

Name Required Type Description
If-Match

string

ETag of the Entity. Not required when creating an entity, but required when updating an entity.

Request Body

Name Required Type Description
properties.path True

string

Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.

apiRevision

string

Describes the revision of the API. If no value is provided, default revision 1 is created

apiRevisionDescription

string

Description of the API Revision.

apiVersion

string

Indicates the version identifier of the API if the API is versioned

apiVersionDescription

string

Description of the API Version.

apiVersionSetId

string

A resource identifier for the related ApiVersionSet.

authenticationSettings

AuthenticationSettingsContract

Collection of authentication settings included into this API.

contact

ApiContactInformation

Contact information for the API.

description

string

Description of the API. May include HTML formatting tags.

isCurrent

boolean

Indicates if API revision is current api revision.

license

ApiLicenseInformation

License information for the API.

properties.apiType

SoapApiType

Type of API to create.

  • http creates a REST API
  • soap creates a SOAP pass-through API
  • websocket creates websocket API
  • graphql creates GraphQL API. New types can be added in the future.
properties.apiVersionSet

ApiVersionSetContractDetails

Version set details

properties.displayName

string

API name. Must be 1 to 300 characters long.

properties.format

ContentFormat

Format of the Content in which the API is getting imported. New formats can be added in the future

properties.protocols

Protocol[]

Describes on which protocols the operations in this API can be invoked.

properties.serviceUrl

string

Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.

properties.sourceApiId

string

API identifier of the source API.

properties.translateRequiredQueryParameters

TranslateRequiredQueryParametersConduct

Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'

properties.value

string

Content value when Importing an API.

properties.wsdlSelector

WsdlSelector

Criteria to limit import of WSDL to a subset of the document.

subscriptionKeyParameterNames

SubscriptionKeyParameterNamesContract

Protocols over which API is made available.

subscriptionRequired

boolean

Specifies whether an API or Product subscription is required for accessing the API.

termsOfServiceUrl

string

A URL to the Terms of Service for the API. MUST be in the format of a URL.

type

ApiType

Type of API.

Responses

Name Type Description
200 OK

ApiContract

API was successfully updated.

Headers

  • ETag: string
  • location: string
  • Azure-AsyncOperation: string
201 Created

ApiContract

API was successfully created.

Headers

  • ETag: string
  • location: string
  • Azure-AsyncOperation: string
Other Status Codes

ErrorResponse

Error response describing why the operation failed.

Security

azure_auth

Azure Active Directory OAuth2 Flow.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
user_impersonation impersonate your user account

Examples

ApiManagementCreateWorkspaceApi

Sample request

PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/workspaces/wks1/apis/tempgroup?api-version=2024-05-01

{
  "properties": {
    "description": "apidescription5200",
    "authenticationSettings": {
      "oAuth2": {
        "authorizationServerId": "authorizationServerId2283",
        "scope": "oauth2scope2580"
      }
    },
    "subscriptionKeyParameterNames": {
      "header": "header4520",
      "query": "query3037"
    },
    "displayName": "apiname1463",
    "serviceUrl": "http://newechoapi.cloudapp.net/api",
    "path": "newapiPath",
    "protocols": [
      "https",
      "http"
    ]
  }
}

Sample response

location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/workspaces/wks1/apis/tempgroup?api-version=2024-05-01&asyncId=5c730e343244df1b9cb56e85&asyncCode=201
Azure-AsyncOperation: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/operationResults/5c730e343244df1b9cb56e85?api-version=2024-05-01
{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/workspaces/wks1/apis/apiid9419",
  "type": "Microsoft.ApiManagement/service/workspaces/apis",
  "name": "apiid9419",
  "properties": {
    "displayName": "apiname1463",
    "apiRevision": "1",
    "description": "apidescription5200",
    "serviceUrl": "http://newechoapi.cloudapp.net/api",
    "path": "newapiPath",
    "protocols": [
      "http",
      "https"
    ],
    "authenticationSettings": {
      "oAuth2": {
        "authorizationServerId": "authorizationServerId2283",
        "scope": "oauth2scope2580"
      },
      "oAuth2AuthenticationSettings": [
        {
          "authorizationServerId": "authorizationServerId2283",
          "scope": "oauth2scope2580"
        }
      ]
    },
    "subscriptionKeyParameterNames": {
      "header": "header4520",
      "query": "query3037"
    },
    "isCurrent": true,
    "isOnline": true,
    "provisioningState": "InProgress"
  }
}
location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/workspaces/wks1/apis/tempgroup?api-version=2024-05-01&asyncId=5c730e343244df1b9cb56e85&asyncCode=200
Azure-AsyncOperation: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/operationResults/5c730e343244df1b9cb56e85?api-version=2024-05-01
{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/workspaces/wks1/apis/apiid9419",
  "type": "Microsoft.ApiManagement/service/workspaces/apis",
  "name": "apiid9419",
  "properties": {
    "displayName": "apiname1463",
    "apiRevision": "1",
    "description": "apidescription5200",
    "serviceUrl": "http://newechoapi.cloudapp.net/api",
    "path": "newapiPath",
    "protocols": [
      "http",
      "https"
    ],
    "authenticationSettings": {
      "oAuth2": {
        "authorizationServerId": "authorizationServerId2283",
        "scope": "oauth2scope2580"
      },
      "oAuth2AuthenticationSettings": [
        {
          "authorizationServerId": "authorizationServerId2283",
          "scope": "oauth2scope2580"
        }
      ]
    },
    "subscriptionKeyParameterNames": {
      "header": "header4520",
      "query": "query3037"
    },
    "isCurrent": true,
    "isOnline": true,
    "provisioningState": "InProgress"
  }
}

Definitions

Name Description
ApiContactInformation

API contact information

ApiContract

API details.

ApiCreateOrUpdateParameter

API Create or Update Parameters.

ApiLicenseInformation

API license information

ApiType

Type of API.

ApiVersionSetContractDetails

An API Version Set contains the common configuration for a set of API Versions relating

AuthenticationSettingsContract

API Authentication Settings.

bearerTokenSendingMethods

How to send token to the server.

ContentFormat

Format of the Content in which the API is getting imported. New formats can be added in the future

ErrorAdditionalInfo

The resource management error additional info.

ErrorDetail

The error detail.

ErrorResponse

Error response

OAuth2AuthenticationSettingsContract

API OAuth2 Authentication settings details.

OpenIdAuthenticationSettingsContract

API OAuth2 Authentication settings details.

Protocol

Describes on which protocols the operations in this API can be invoked.

SoapApiType

Type of API to create.

  • http creates a REST API
  • soap creates a SOAP pass-through API
  • websocket creates websocket API
  • graphql creates GraphQL API. New types can be added in the future.
SubscriptionKeyParameterNamesContract

Subscription key parameter names details.

TranslateRequiredQueryParametersConduct

Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'

versioningScheme

An value that determines where the API Version identifier will be located in a HTTP request.

WsdlSelector

Criteria to limit import of WSDL to a subset of the document.

ApiContactInformation

API contact information

Name Type Description
email

string

The email address of the contact person/organization. MUST be in the format of an email address

name

string

The identifying name of the contact person/organization

url

string

The URL pointing to the contact information. MUST be in the format of a URL

ApiContract

API details.

Name Type Description
id

string

Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

name

string

The name of the resource

properties.apiRevision

string

Describes the revision of the API. If no value is provided, default revision 1 is created

properties.apiRevisionDescription

string

Description of the API Revision.

properties.apiVersion

string

Indicates the version identifier of the API if the API is versioned

properties.apiVersionDescription

string

Description of the API Version.

properties.apiVersionSet

ApiVersionSetContractDetails

Version set details

properties.apiVersionSetId

string

A resource identifier for the related ApiVersionSet.

properties.authenticationSettings

AuthenticationSettingsContract

Collection of authentication settings included into this API.

properties.contact

ApiContactInformation

Contact information for the API.

properties.description

string

Description of the API. May include HTML formatting tags.

properties.displayName

string

API name. Must be 1 to 300 characters long.

properties.isCurrent

boolean

Indicates if API revision is current api revision.

properties.isOnline

boolean

Indicates if API revision is accessible via the gateway.

properties.license

ApiLicenseInformation

License information for the API.

properties.path

string

Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.

properties.protocols

Protocol[]

Describes on which protocols the operations in this API can be invoked.

properties.provisioningState

string

The provisioning state

properties.serviceUrl

string

Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.

properties.sourceApiId

string

API identifier of the source API.

properties.subscriptionKeyParameterNames

SubscriptionKeyParameterNamesContract

Protocols over which API is made available.

properties.subscriptionRequired

boolean

Specifies whether an API or Product subscription is required for accessing the API.

properties.termsOfServiceUrl

string

A URL to the Terms of Service for the API. MUST be in the format of a URL.

properties.type

ApiType

Type of API.

type

string

The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"

ApiCreateOrUpdateParameter

API Create or Update Parameters.

Name Type Description
apiRevision

string

Describes the revision of the API. If no value is provided, default revision 1 is created

apiRevisionDescription

string

Description of the API Revision.

apiVersion

string

Indicates the version identifier of the API if the API is versioned

apiVersionDescription

string

Description of the API Version.

apiVersionSetId

string

A resource identifier for the related ApiVersionSet.

authenticationSettings

AuthenticationSettingsContract

Collection of authentication settings included into this API.

contact

ApiContactInformation

Contact information for the API.

description

string

Description of the API. May include HTML formatting tags.

isCurrent

boolean

Indicates if API revision is current api revision.

isOnline

boolean

Indicates if API revision is accessible via the gateway.

license

ApiLicenseInformation

License information for the API.

properties.apiType

SoapApiType

Type of API to create.

  • http creates a REST API
  • soap creates a SOAP pass-through API
  • websocket creates websocket API
  • graphql creates GraphQL API. New types can be added in the future.
properties.apiVersionSet

ApiVersionSetContractDetails

Version set details

properties.displayName

string

API name. Must be 1 to 300 characters long.

properties.format

ContentFormat

Format of the Content in which the API is getting imported. New formats can be added in the future

properties.path

string

Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.

properties.protocols

Protocol[]

Describes on which protocols the operations in this API can be invoked.

properties.provisioningState

string

The provisioning state

properties.serviceUrl

string

Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.

properties.sourceApiId

string

API identifier of the source API.

properties.translateRequiredQueryParameters

TranslateRequiredQueryParametersConduct

Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'

properties.value

string

Content value when Importing an API.

properties.wsdlSelector

WsdlSelector

Criteria to limit import of WSDL to a subset of the document.

subscriptionKeyParameterNames

SubscriptionKeyParameterNamesContract

Protocols over which API is made available.

subscriptionRequired

boolean

Specifies whether an API or Product subscription is required for accessing the API.

termsOfServiceUrl

string

A URL to the Terms of Service for the API. MUST be in the format of a URL.

type

ApiType

Type of API.

ApiLicenseInformation

API license information

Name Type Description
name

string

The license name used for the API

url

string

A URL to the license used for the API. MUST be in the format of a URL

ApiType

Type of API.

Name Type Description
graphql

string

grpc

string

http

string

odata

string

soap

string

websocket

string

ApiVersionSetContractDetails

An API Version Set contains the common configuration for a set of API Versions relating

Name Type Description
description

string

Description of API Version Set.

id

string

Identifier for existing API Version Set. Omit this value to create a new Version Set.

name

string

The display Name of the API Version Set.

versionHeaderName

string

Name of HTTP header parameter that indicates the API Version if versioningScheme is set to header.

versionQueryName

string

Name of query parameter that indicates the API Version if versioningScheme is set to query.

versioningScheme

versioningScheme

An value that determines where the API Version identifier will be located in a HTTP request.

AuthenticationSettingsContract

API Authentication Settings.

Name Type Description
oAuth2

OAuth2AuthenticationSettingsContract

OAuth2 Authentication settings

oAuth2AuthenticationSettings

OAuth2AuthenticationSettingsContract[]

Collection of OAuth2 authentication settings included into this API.

openid

OpenIdAuthenticationSettingsContract

OpenID Connect Authentication Settings

openidAuthenticationSettings

OpenIdAuthenticationSettingsContract[]

Collection of Open ID Connect authentication settings included into this API.

bearerTokenSendingMethods

How to send token to the server.

Name Type Description
authorizationHeader

string

Access token will be transmitted in the Authorization header using Bearer schema

query

string

Access token will be transmitted as query parameters.

ContentFormat

Format of the Content in which the API is getting imported. New formats can be added in the future

Name Type Description
graphql-link

string

The GraphQL API endpoint hosted on a publicly accessible internet address.

grpc

string

The contents are inline and Content Type is a gRPC protobuf file.

grpc-link

string

The gRPC protobuf file is hosted on a publicly accessible internet address.

odata

string

The contents are inline and Content Type is a OData XML Document.

odata-link

string

The OData metadata document hosted on a publicly accessible internet address.

openapi

string

The contents are inline and Content Type is a OpenAPI 3.0 YAML Document.

openapi+json

string

The contents are inline and Content Type is a OpenAPI 3.0 JSON Document.

openapi+json-link

string

The OpenAPI 3.0 JSON document is hosted on a publicly accessible internet address.

openapi-link

string

The OpenAPI 3.0 YAML document is hosted on a publicly accessible internet address.

swagger-json

string

The contents are inline and Content Type is a OpenAPI 2.0 JSON Document.

swagger-link-json

string

The OpenAPI 2.0 JSON document is hosted on a publicly accessible internet address.

wadl-link-json

string

The WADL document is hosted on a publicly accessible internet address.

wadl-xml

string

The contents are inline and Content type is a WADL document.

wsdl

string

The contents are inline and the document is a WSDL/Soap document.

wsdl-link

string

The WSDL document is hosted on a publicly accessible internet address.

ErrorAdditionalInfo

The resource management error additional info.

Name Type Description
info

object

The additional info.

type

string

The additional info type.

ErrorDetail

The error detail.

Name Type Description
additionalInfo

ErrorAdditionalInfo[]

The error additional info.

code

string

The error code.

details

ErrorDetail[]

The error details.

message

string

The error message.

target

string

The error target.

ErrorResponse

Error response

Name Type Description
error

ErrorDetail

The error object.

OAuth2AuthenticationSettingsContract

API OAuth2 Authentication settings details.

Name Type Description
authorizationServerId

string

OAuth authorization server identifier.

scope

string

operations scope.

OpenIdAuthenticationSettingsContract

API OAuth2 Authentication settings details.

Name Type Description
bearerTokenSendingMethods

bearerTokenSendingMethods[]

How to send token to the server.

openidProviderId

string

OAuth authorization server identifier.

Protocol

Describes on which protocols the operations in this API can be invoked.

Name Type Description
http

string

https

string

ws

string

wss

string

SoapApiType

Type of API to create.

  • http creates a REST API
  • soap creates a SOAP pass-through API
  • websocket creates websocket API
  • graphql creates GraphQL API. New types can be added in the future.
Name Type Description
graphql

string

Imports the API having a GraphQL front end.

grpc

string

Imports the API having a gRPC front end.

http

string

Imports a SOAP API having a RESTful front end.

odata

string

Imports the API having a OData front end.

soap

string

Imports the SOAP API having a SOAP front end.

websocket

string

Imports the API having a Websocket front end.

SubscriptionKeyParameterNamesContract

Subscription key parameter names details.

Name Type Description
header

string

Subscription key header name.

query

string

Subscription key query string parameter name.

TranslateRequiredQueryParametersConduct

Strategy of translating required query parameters to template ones. By default has value 'template'. Possible values: 'template', 'query'

Name Type Description
query

string

Leaves required query parameters as they are (no translation done).

template

string

Translates required query parameters to template ones. Is a default value

versioningScheme

An value that determines where the API Version identifier will be located in a HTTP request.

Name Type Description
Header

string

The API Version is passed in a HTTP header.

Query

string

The API Version is passed in a query parameter.

Segment

string

The API Version is passed in a path segment.

WsdlSelector

Criteria to limit import of WSDL to a subset of the document.

Name Type Description
wsdlEndpointName

string

Name of endpoint(port) to import from WSDL

wsdlServiceName

string

Name of service to import from WSDL