@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api ApiManagementClient
@base https://management.azure.com
@version 2019-12-01-preview
@auth OAuth2
@endpoints 25
@hint download_for_search
@toc subscriptions(25)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products
@desc Lists a collection of products in the specified service instance.
@optional {$filter: any # |   Field     |     Usage     |     Supported operators     |     Supported functions     ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | terms | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | state | filter | eq |     | | groups | expand |     |     |, expandGroups: any # When set to true, the response contains an array of groups that have visibility to the product. The default is false., tags: any # Products which are part of a specific tag.}
@returns(200) A Collection of the Product entities for the specified API Management service instance.

@endpoint HEAD /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}
@desc Gets the entity state (Etag) version of the product specified by its identifier.
@returns(200) Specified Product entity exists and current entity state version is present in the ETag header.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}
@desc Gets the details of the product specified by its identifier.
@returns(200) The response body contains the specified Product entity.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}
@desc Creates or Updates a product.
@required {parameters: any # Create or update parameters.}
@returns(200) Product was successfully updated.
@returns(201) Product was successfully created.

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}
@desc Update existing product details.
@required {parameters: any # Update parameters.}
@returns(204) Product details was successfully updated.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}
@desc Delete product.
@optional {deleteSubscriptions: any # Delete existing subscriptions associated with the product or not.}
@returns(200) Product was successfully removed.
@returns(204) Product was successfully removed by previous request or does not exist.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis
@desc Lists a collection of the APIs associated with a product.
@optional {$filter: any # |   Field     |     Usage     |     Supported operators     |     Supported functions     ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | description | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | serviceUrl | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | path | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |}
@returns(200) The response body contains a collection of Api entities in the product.

@endpoint HEAD /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis/{apiId}
@desc Checks that API entity specified by identifier is associated with the Product entity.
@returns(204) Entity exists

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis/{apiId}
@desc Adds an API to the specified product.
@returns(200) The specified API is already added to the product.
@returns(201) The API was successfully added to the product.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis/{apiId}
@desc Deletes the specified API from the specified product.
@returns(200) API was successfully removed from product
@returns(204) API successfully removed by previous request or does not exist in product

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups
@desc Lists the collection of developer groups associated with the specified product.
@optional {$filter: any # |   Field     |     Usage     |     Supported operators     |     Supported functions     ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt |     | | displayName | filter | eq, ne |     | | description | filter | eq, ne |     |}
@returns(200) Lists a collection of Group entities.

@endpoint HEAD /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups/{groupId}
@desc Checks that Group entity specified by identifier is associated with the Product entity.
@returns(204) The Group is associated with the Product.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups/{groupId}
@desc Adds the association between the specified developer group with the specified product.
@returns(200) The specified group is already associated with the product.
@returns(201) The group was successfully associated with the product.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups/{groupId}
@desc Deletes the association between the specified group and product.
@returns(200) The group was successfully disassociated with the product.
@returns(204) The group was successfully disassociated with the product.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/subscriptions
@desc Lists the collection of subscriptions to the specified product.
@optional {$filter: any # |   Field     |     Usage     |     Supported operators     |     Supported functions     ||-------------|-------------|-------------|-------------|| name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | stateComment | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | ownerId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | scope | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | userId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | productId | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | state | filter | eq |     | | user | expand |     |     |}
@returns(200) Lists a collection of subscription entities.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/policies
@desc Get the policy configuration at the Product level.
@returns(200) Product Policy information.

@endpoint HEAD /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/policies/{policyId}
@desc Get the ETag of the policy configuration at the Product level.
@returns(200) Product Policy Etag information.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/policies/{policyId}
@desc Get the policy configuration at the Product level.
@returns(200) Product Policy information.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/policies/{policyId}
@desc Creates or updates policy configuration for the Product.
@required {parameters: any # The policy contents to apply.}
@returns(200) Product policy configuration of the tenant was successfully updated.
@returns(201) Product policy configuration was successfully created.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/policies/{policyId}
@desc Deletes the policy configuration at the Product.
@returns(200) Successfully deleted the policy configuration at the Product level.
@returns(204) Successfully deleted the policy configuration at the Product level.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags
@desc Lists all Tags associated with the Product.
@optional {$filter: any # |   Field     |     Usage     |     Supported operators     |     Supported functions     ||-------------|-------------|-------------|-------------|| displayName | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | | name | filter | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |}
@returns(200) The operation returns a collection of tags associated with the Product entity.

@endpoint HEAD /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags/{tagId}
@desc Gets the entity state version of the tag specified by its identifier.
@returns(200) Empty response body, ETag header entity state version.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags/{tagId}
@desc Get tag associated with the Product.
@returns(200) Gets the details of the tag specified by its identifier.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags/{tagId}
@desc Assign tag to the Product.
@returns(200) Tag is already assigned to the Product.
@returns(201) Tag was assigned to the Product.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags/{tagId}
@desc Detach the tag from the Product.
@returns(200) Successfully detached the tag from the Product.
@returns(204) Successfully detached the tag from the Product.

@end
