{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "description": "Use these REST APIs for performing operations on Tag entity in your Azure API Management deployment. Tags can be assigned to APIs, Operations and Products.",
    "title": "ApiManagementClient",
    "version": "2017-03-01",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2017-03-01/apimtags.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "apimanagement-apimtags",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow.",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "parameters": {
    "TagIdParameter": {
      "description": "Tag identifier. Must be unique in the current API Management service instance.",
      "in": "path",
      "maxLength": 256,
      "minLength": 1,
      "name": "tagId",
      "pattern": "^[^*#&+:<>?]+$",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/tags": {
      "get": {
        "description": "Lists all Tags associated with the Operation.",
        "operationId": "Tag_ListByOperation",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Operation identifier within an API. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "operationId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "| Field       | Supported operators    | Supported functions                         |\n|-------------|------------------------|---------------------------------------------|\n| id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| method     | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| description | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| urlTemplate | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of records to return.",
            "format": "int32",
            "in": "query",
            "minimum": 1,
            "name": "$top",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Number of records to skip.",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "$skip",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returns a collection of tags associated with the Operation entity.",
            "schema": {
              "$ref": "#/definitions/TagCollection"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "OperationTags"
        ],
        "x-ms-examples": {
          "ApiManagementGetTagsForOperation": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "57d2ef278aa04f0888cba3f3",
              "operationId": "57d2ef278aa04f0888cba3f6",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "nextLink": "",
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/5600b539c53f5b0062060002",
                      "name": "5600b539c53f5b0062060002",
                      "properties": {
                        "displayName": "tag1"
                      },
                      "type": "Microsoft.ApiManagement/service/tags"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/TagContract",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/tags/{tagId}": {
      "delete": {
        "description": "Detach the tag from the Operation.",
        "operationId": "Tag_DetachFromOperation",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Operation identifier within an API. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "operationId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "The entity state (Etag) version of the Api schema to update. A value of \"*\" can be used for If-Match to unconditionally apply the operation.",
            "in": "header",
            "name": "If-Match",
            "required": true,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully detached the tag from the Operation."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "OperationTags"
        ],
        "x-ms-examples": {
          "ApiManagementDeleteOperationTag": {
            "parameters": {
              "If-Match": "*",
              "api-version": "2017-03-01",
              "apiId": "59d5b28d1f7fab116c282650",
              "operationId": "59d5b28d1f7fab116c282651",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59d5b28e1f7fab116402044e"
            },
            "responses": {
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get tag associated with the Operation.",
        "operationId": "Tag_GetByOperation",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Operation identifier within an API. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "operationId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Gets the details of the tag specified by its identifier.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "OperationTags"
        ],
        "x-ms-examples": {
          "ApiManagementGetOperationTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "59d6bb8f1f7fab13dc67ec9b",
              "operationId": "59d6bb8f1f7fab13dc67ec9a",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/59306a29e4bbd510dc24e5f9",
                  "name": "59306a29e4bbd510dc24e5f9",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      },
      "head": {
        "description": "Gets the entity state version of the tag specified by its identifier.",
        "operationId": "Tag_GetEntityStateByOperation",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Operation identifier within an API. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "operationId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response body, ETag header entity state version.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "OperationTags"
        ],
        "x-ms-examples": {
          "ApiManagementHeadOperationTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "59d6bb8f1f7fab13dc67ec9b",
              "operationId": "59d6bb8f1f7fab13dc67ec9a",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "headers": {
                  "Etag": "AAAAAAAACCI="
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Assign tag to the Operation.",
        "operationId": "Tag_AssignToOperation",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Operation identifier within an API. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "operationId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "The entity state (Etag) version of the Tag to update. A value of \"*\" can be used for If-Match to unconditionally apply the operation.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Tag is already assigned to the Operation.",
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "201": {
            "description": "Tag was assigned to the Operation.",
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "OperationTags"
        ],
        "x-ms-examples": {
          "ApiManagementCreateOperationTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "5931a75ae4bbd512a88c680b",
              "operationId": "5931a75ae4bbd512a88c680a",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "tagId1"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operationsByTags": {
      "get": {
        "description": "Lists a collection of operations associated with tags.",
        "operationId": "Operation_ListByTags",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "| Field       | Supported operators    | Supported functions                         |\n|-------------|------------------------|---------------------------------------------|\n| id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| apiName     | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| description | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| method      | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| urlTemplate | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of records to return.",
            "format": "int32",
            "in": "query",
            "minimum": 1,
            "name": "$top",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Number of records to skip.",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "$skip",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Lists a collection of TagResource entities.",
            "schema": {
              "description": "Paged Tag list representation.",
              "properties": {
                "nextLink": {
                  "description": "Next page link if any.",
                  "type": "string"
                },
                "value": {
                  "description": "Page values.",
                  "items": {
                    "allOf": [
                      {
                        "description": "The Resource definition.",
                        "properties": {
                          "id": {
                            "description": "Resource ID.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "name": {
                            "description": "Resource name.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "type": {
                            "description": "Resource type for API Management resource.",
                            "readOnly": true,
                            "type": "string"
                          }
                        },
                        "x-ms-azure-resource": true
                      }
                    ],
                    "description": "Contract details.",
                    "properties": {
                      "properties": {
                        "description": "TagResource contract properties.",
                        "properties": {
                          "api": {
                            "allOf": [
                              {
                                "description": "The Resource definition.",
                                "properties": {
                                  "id": {
                                    "description": "Resource ID.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "name": {
                                    "description": "Resource name.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "type": {
                                    "description": "Resource type for API Management resource.",
                                    "readOnly": true,
                                    "type": "string"
                                  }
                                },
                                "x-ms-azure-resource": true
                              }
                            ],
                            "description": "API details.",
                            "properties": {
                              "properties": {
                                "allOf": [
                                  {
                                    "description": "API base contract details.",
                                    "properties": {
                                      "apiRevision": {
                                        "description": "Describes the Revision of the Api. If no value is provided, default revision 1 is created",
                                        "maxLength": 100,
                                        "minLength": 1,
                                        "type": "string"
                                      },
                                      "apiVersion": {
                                        "description": "Indicates the Version identifier of the API if the API is versioned",
                                        "maxLength": 100,
                                        "type": "string"
                                      },
                                      "apiVersionSetId": {
                                        "description": "A resource identifier for the related ApiVersionSet.",
                                        "type": "string"
                                      },
                                      "authenticationSettings": {
                                        "description": "API Authentication Settings.",
                                        "properties": {
                                          "oAuth2": {
                                            "description": "API OAuth2 Authentication settings details.",
                                            "properties": {
                                              "authorizationServerId": {
                                                "description": "OAuth authorization server identifier.",
                                                "type": "string"
                                              },
                                              "scope": {
                                                "description": "operations scope.",
                                                "type": "string"
                                              }
                                            }
                                          }
                                        }
                                      },
                                      "description": {
                                        "description": "Description of the API. May include HTML formatting tags.",
                                        "type": "string"
                                      },
                                      "isCurrent": {
                                        "description": "Indicates if API revision is current api revision.",
                                        "readOnly": true,
                                        "type": "boolean"
                                      },
                                      "isOnline": {
                                        "description": "Indicates if API revision is accessible via the gateway.",
                                        "readOnly": true,
                                        "type": "boolean"
                                      },
                                      "subscriptionKeyParameterNames": {
                                        "description": "Subscription key parameter names details.",
                                        "example": {
                                          "subscriptionKeyParameterNames": {
                                            "header": "customHeaderParameterName",
                                            "query": "customQueryParameterName"
                                          }
                                        },
                                        "properties": {
                                          "header": {
                                            "description": "Subscription key header name.",
                                            "type": "string"
                                          },
                                          "query": {
                                            "description": "Subscription key query string parameter name.",
                                            "type": "string"
                                          }
                                        }
                                      },
                                      "type": {
                                        "description": "Type of API.",
                                        "enum": [
                                          "http",
                                          "soap"
                                        ],
                                        "type": "string",
                                        "x-ms-client-name": "ApiType",
                                        "x-ms-enum": {
                                          "modelAsString": true,
                                          "name": "ApiType"
                                        }
                                      }
                                    }
                                  }
                                ],
                                "description": "Api Entity Properties",
                                "properties": {
                                  "apiVersionSet": {
                                    "allOf": [
                                      {
                                        "description": "The Resource definition.",
                                        "properties": {
                                          "id": {
                                            "description": "Resource ID.",
                                            "readOnly": true,
                                            "type": "string"
                                          },
                                          "name": {
                                            "description": "Resource name.",
                                            "readOnly": true,
                                            "type": "string"
                                          },
                                          "type": {
                                            "description": "Resource type for API Management resource.",
                                            "readOnly": true,
                                            "type": "string"
                                          }
                                        },
                                        "x-ms-azure-resource": true
                                      }
                                    ],
                                    "description": "Api Version Set Contract details.",
                                    "properties": {
                                      "properties": {
                                        "allOf": [
                                          {
                                            "properties": {
                                              "description": {
                                                "description": "Description of API Version Set.",
                                                "type": "string"
                                              },
                                              "versionHeaderName": {
                                                "description": "Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.",
                                                "maxLength": 100,
                                                "minLength": 1,
                                                "type": "string"
                                              },
                                              "versionQueryName": {
                                                "description": "Name of query parameter that indicates the API Version if versioningScheme is set to `query`.",
                                                "maxLength": 100,
                                                "minLength": 1,
                                                "type": "string"
                                              }
                                            }
                                          }
                                        ],
                                        "description": "Properties of an API Version Set.",
                                        "properties": {
                                          "displayName": {
                                            "description": "Name of API Version Set",
                                            "maxLength": 100,
                                            "minLength": 1,
                                            "type": "string"
                                          },
                                          "versioningScheme": {
                                            "description": "An value that determines where the API Version identifer will be located in a HTTP request.",
                                            "enum": [
                                              "Segment",
                                              "Query",
                                              "Header"
                                            ],
                                            "type": "string",
                                            "x-ms-enum": {
                                              "modelAsString": true,
                                              "name": "versioningScheme",
                                              "values": [
                                                {
                                                  "description": "The API Version is passed in a path segment.",
                                                  "value": "Segment"
                                                },
                                                {
                                                  "description": "The API Version is passed in a query parameter.",
                                                  "value": "Query"
                                                },
                                                {
                                                  "description": "The API Version is passed in a HTTP header.",
                                                  "value": "Header"
                                                }
                                              ]
                                            }
                                          }
                                        },
                                        "required": [
                                          "displayName",
                                          "versioningScheme"
                                        ]
                                      }
                                    }
                                  },
                                  "displayName": {
                                    "description": "API name.",
                                    "maxLength": 300,
                                    "minLength": 1,
                                    "type": "string"
                                  },
                                  "path": {
                                    "description": "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.",
                                    "maxLength": 400,
                                    "minLength": 0,
                                    "type": "string"
                                  },
                                  "protocols": {
                                    "description": "Describes on which protocols the operations in this API can be invoked.",
                                    "items": {
                                      "enum": [
                                        "http",
                                        "https"
                                      ],
                                      "type": "string",
                                      "x-ms-enum": {
                                        "modelAsString": false,
                                        "name": "Protocol"
                                      }
                                    },
                                    "type": "array"
                                  },
                                  "serviceUrl": {
                                    "description": "Absolute URL of the backend service implementing this API.",
                                    "maxLength": 2000,
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "path"
                                ]
                              }
                            }
                          },
                          "operation": {
                            "allOf": [
                              {
                                "description": "The Resource definition.",
                                "properties": {
                                  "id": {
                                    "description": "Resource ID.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "name": {
                                    "description": "Resource name.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "type": {
                                    "description": "Resource type for API Management resource.",
                                    "readOnly": true,
                                    "type": "string"
                                  }
                                },
                                "x-ms-azure-resource": true
                              }
                            ],
                            "description": "Operation Entity Contract Properties.",
                            "properties": {
                              "properties": {
                                "description": "Operation Entity contract Properties.",
                                "properties": {
                                  "apiName": {
                                    "description": "Api Name.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "apiRevision": {
                                    "description": "Api Revision.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "apiVersion": {
                                    "description": "Api Version.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "description": {
                                    "description": "Operation Description.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "displayName": {
                                    "description": "Operation name.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "method": {
                                    "description": "A Valid HTTP Operation Method. Typical Http Methods like GET, PUT, POST but not limited by only them.",
                                    "externalDocs": {
                                      "description": "As defined by RFC.",
                                      "url": "http://www.rfc-editor.org/rfc/rfc7230.txt"
                                    },
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "urlTemplate": {
                                    "description": "Relative URL template identifying the target resource for this operation. May include parameters. Example: /customers/{cid}/orders/{oid}/?date={date}",
                                    "readOnly": true,
                                    "type": "string"
                                  }
                                }
                              }
                            }
                          },
                          "product": {
                            "allOf": [
                              {
                                "description": "The Resource definition.",
                                "properties": {
                                  "id": {
                                    "description": "Resource ID.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "name": {
                                    "description": "Resource name.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "type": {
                                    "description": "Resource type for API Management resource.",
                                    "readOnly": true,
                                    "type": "string"
                                  }
                                },
                                "x-ms-azure-resource": true
                              }
                            ],
                            "description": "Product details.",
                            "properties": {
                              "properties": {
                                "allOf": [
                                  {
                                    "description": "Product Entity Base Parameters",
                                    "properties": {
                                      "approvalRequired": {
                                        "description": "whether subscription approval is required. If false, new subscriptions will be approved automatically enabling developers to call the product’s APIs immediately after subscribing. If true, administrators must manually approve the subscription before the developer can any of the product’s APIs. Can be present only if subscriptionRequired property is present and has a value of true.",
                                        "type": "boolean"
                                      },
                                      "description": {
                                        "description": "Product description. May include HTML formatting tags.",
                                        "maxLength": 1000,
                                        "minLength": 1,
                                        "type": "string"
                                      },
                                      "state": {
                                        "description": "whether product is published or not. Published products are discoverable by users of developer portal. Non published products are visible only to administrators. Default state of Product is notPublished.",
                                        "enum": [
                                          "notPublished",
                                          "published"
                                        ],
                                        "type": "string",
                                        "x-ms-enum": {
                                          "modelAsString": false,
                                          "name": "ProductState"
                                        }
                                      },
                                      "subscriptionRequired": {
                                        "description": "Whether a product subscription is required for accessing APIs included in this product. If true, the product is referred to as \"protected\" and a valid subscription key is required for a request to an API included in the product to succeed. If false, the product is referred to as \"open\" and requests to an API included in the product can be made without a subscription key. If property is omitted when creating a new product it's value is assumed to be true.",
                                        "type": "boolean"
                                      },
                                      "subscriptionsLimit": {
                                        "description": "Whether the number of subscriptions a user can have to this product at the same time. Set to null or omit to allow unlimited per user subscriptions. Can be present only if subscriptionRequired property is present and has a value of true.",
                                        "format": "int32",
                                        "type": "integer"
                                      },
                                      "terms": {
                                        "description": "Product terms of use. Developers trying to subscribe to the product will be presented and required to accept these terms before they can complete the subscription process.",
                                        "type": "string"
                                      }
                                    }
                                  }
                                ],
                                "description": "Product profile.",
                                "properties": {
                                  "displayName": {
                                    "description": "Product name.",
                                    "maxLength": 300,
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "displayName"
                                ]
                              }
                            }
                          },
                          "tag": {
                            "allOf": [
                              {
                                "description": "The Resource definition.",
                                "properties": {
                                  "id": {
                                    "description": "Resource ID.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "name": {
                                    "description": "Resource name.",
                                    "readOnly": true,
                                    "type": "string"
                                  },
                                  "type": {
                                    "description": "Resource type for API Management resource.",
                                    "readOnly": true,
                                    "type": "string"
                                  }
                                },
                                "x-ms-azure-resource": true
                              }
                            ],
                            "description": "Tag Contract details.",
                            "properties": {
                              "properties": {
                                "description": "Tag contract Properties.",
                                "properties": {
                                  "displayName": {
                                    "description": "Tag name.",
                                    "maxLength": 160,
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "displayName"
                                ]
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "type": "array"
                }
              }
            }
          }
        },
        "tags": [
          "OperationsByTags"
        ],
        "x-ms-examples": {
          "ApiManagementListOperationsByTags": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "a1",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "nextLink": "",
                  "value": [
                    {
                      "properties": {
                        "operation": {
                          "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/apiId1/operations/opid1",
                          "name": "opid1",
                          "properties": {
                            "apiName": "api1",
                            "apiRevision": "1",
                            "apiVersion": null,
                            "description": "some operation",
                            "displayName": "apiop1",
                            "method": "GET",
                            "urlTemplate": "/op1"
                          },
                          "type": "Microsoft.ApiManagement/service/apis/operations"
                        },
                        "tag": {
                          "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/5600b59375ff190048020001",
                          "name": "5600b59375ff190048020001",
                          "properties": {
                            "displayName": "tag1"
                          },
                          "type": "Microsoft.ApiManagement/service/tags"
                        }
                      }
                    },
                    {
                      "properties": {
                        "operation": {
                          "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/apiId1/operations/opid2",
                          "name": "opid2",
                          "properties": {
                            "apiName": "api1",
                            "apiRevision": "1",
                            "apiVersion": null,
                            "description": "some operation",
                            "displayName": "apiop2",
                            "method": "GET",
                            "urlTemplate": "/op2"
                          },
                          "type": "Microsoft.ApiManagement/service/apis/operations"
                        },
                        "tag": {
                          "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/5600b59375ff190048020001",
                          "name": "5600b59375ff190048020001",
                          "properties": {
                            "displayName": "tag1"
                          },
                          "type": "Microsoft.ApiManagement/service/tags"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "./apimtagresources.json#/definitions/TagResourceContract",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tagDescriptions": {
      "get": {
        "description": "Lists all Tags descriptions in scope of API. Model similar to swagger - tagDescription is defined on API level but tag may be assigned to the Operations",
        "operationId": "TagDescription_ListByApi",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "| Field       | Supported operators    | Supported functions                         |\n|-------------|------------------------|---------------------------------------------|\n| id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of records to return.",
            "format": "int32",
            "in": "query",
            "minimum": 1,
            "name": "$top",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Number of records to skip.",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "$skip",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returns a collection of tagDescriptions associated with the Api entity.",
            "schema": {
              "$ref": "#/definitions/TagDescriptionCollection"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTagDescriptions"
        ],
        "x-ms-examples": {
          "ApiManagementGetTagDescriptionsForApi": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "57d2ef278aa04f0888cba3f3",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "nextLink": "",
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/5600b539c53f5b0062060002",
                      "name": "5600b539c53f5b0062060002",
                      "properties": {
                        "description": null,
                        "displayName": "tag1",
                        "externalDocsDescription": "some additional info",
                        "externalDocsUrl": "http://some_url.com"
                      },
                      "type": "Microsoft.ApiManagement/service/tags"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/TagDescriptionContract",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tagDescriptions/{tagId}": {
      "delete": {
        "description": "Delete tag description for the Api.",
        "operationId": "TagDescription_Delete",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "The entity state (Etag) version of the Api schema to update. A value of \"*\" can be used for If-Match to unconditionally apply the operation.",
            "in": "header",
            "name": "If-Match",
            "required": true,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted tag description for the Api."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTagDescriptions"
        ],
        "x-ms-examples": {
          "ApiManagementDeleteApiTagDescription": {
            "parameters": {
              "If-Match": "*",
              "api-version": "2017-03-01",
              "apiId": "59d5b28d1f7fab116c282650",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59d5b28e1f7fab116402044e"
            },
            "responses": {
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get tag associated with the API.",
        "operationId": "TagDescription_Get",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Gets the description of the tag specified by its identifier in scope if the Api.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/TagDescriptionContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTagDescriptions"
        ],
        "x-ms-examples": {
          "ApiManagementGetApiTagDescription": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "59d6bb8f1f7fab13dc67ec9b",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/59306a29e4bbd510dc24e5f9",
                  "name": "59306a29e4bbd510dc24e5f9",
                  "properties": {
                    "description": null,
                    "displayName": "tag1",
                    "externalDocsDescription": "some additional info",
                    "externalDocsUrl": "http://some_url.com"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      },
      "head": {
        "description": "Gets the entity state version of the tag specified by its identifier.",
        "operationId": "TagDescription_GetEntityState",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response body, ETag header entity state version.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTagDescriptions"
        ],
        "x-ms-examples": {
          "ApiManagementHeadApiTagDescription": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "59d6bb8f1f7fab13dc67ec9b",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "headers": {
                  "Etag": "AAAAAAAACCI="
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Create/Update tag description in scope of the Api.",
        "operationId": "TagDescription_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Create parameters.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TagDescriptionCreateParameters"
            }
          },
          {
            "description": "The entity state (Etag) version of the Tag to update. A value of \"*\" can be used for If-Match to unconditionally apply the operation.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Tag Description was updated for the Api.",
            "schema": {
              "$ref": "#/definitions/TagDescriptionContract"
            }
          },
          "201": {
            "description": "Tag Description was created for the Api.",
            "schema": {
              "$ref": "#/definitions/TagDescriptionContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTagDescriptions"
        ],
        "x-ms-examples": {
          "ApiManagementCreateApiTagDescription": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "5931a75ae4bbd512a88c680b",
              "parameters": {
                "properties": {
                  "description": "Some description that will be displayed for operation's tag if the tag is assigned to operation of the API",
                  "externalDocsDescription": "Description of the external docs resource",
                  "externalDocsUrl": "http://some.url/additionaldoc"
                }
              },
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "tagId1"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "description": null,
                    "displayName": "tag1",
                    "externalDocsDescription": "some additional info",
                    "externalDocsUrl": "http://some_url.com"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "description": null,
                    "displayName": "tag1",
                    "externalDocsDescription": "some additional info",
                    "externalDocsUrl": "http://some_url.com"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tags": {
      "get": {
        "description": "Lists all Tags associated with the API.",
        "operationId": "Tag_ListByApi",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "| Field       | Supported operators    | Supported functions                         |\n|-------------|------------------------|---------------------------------------------|\n| id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of records to return.",
            "format": "int32",
            "in": "query",
            "minimum": 1,
            "name": "$top",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Number of records to skip.",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "$skip",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returns a collection of tags associated with the Api entity.",
            "schema": {
              "$ref": "#/definitions/TagCollection"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTags"
        ],
        "x-ms-examples": {
          "ApiManagementGetTagsForApi": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "57d2ef278aa04f0888cba3f3",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "nextLink": "",
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/5600b539c53f5b0062060002",
                      "name": "5600b539c53f5b0062060002",
                      "properties": {
                        "displayName": "tag1"
                      },
                      "type": "Microsoft.ApiManagement/service/tags"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/TagContract",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tags/{tagId}": {
      "delete": {
        "description": "Detach the tag from the Api.",
        "operationId": "Tag_DetachFromApi",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "The entity state (Etag) version of the Api schema to update. A value of \"*\" can be used for If-Match to unconditionally apply the operation.",
            "in": "header",
            "name": "If-Match",
            "required": true,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully detached the tag from the Api."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTags"
        ],
        "x-ms-examples": {
          "ApiManagementDeleteApiTag": {
            "parameters": {
              "If-Match": "*",
              "api-version": "2017-03-01",
              "apiId": "59d5b28d1f7fab116c282650",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59d5b28e1f7fab116402044e"
            },
            "responses": {
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get tag associated with the API.",
        "operationId": "Tag_GetByApi",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Gets the details of the tag specified by its identifier.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTags"
        ],
        "x-ms-examples": {
          "ApiManagementGetApiTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "59d6bb8f1f7fab13dc67ec9b",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/59306a29e4bbd510dc24e5f9",
                  "name": "59306a29e4bbd510dc24e5f9",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      },
      "head": {
        "description": "Gets the entity state version of the tag specified by its identifier.",
        "operationId": "Tag_GetEntityStateByApi",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response body, ETag header entity state version.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTags"
        ],
        "x-ms-examples": {
          "ApiManagementHeadApiTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "59d6bb8f1f7fab13dc67ec9b",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "headers": {
                  "Etag": "AAAAAAAACCI="
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Assign tag to the Api.",
        "operationId": "Tag_AssignToApi",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "API identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "apiId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "The entity state (Etag) version of the Tag to update. A value of \"*\" can be used for If-Match to unconditionally apply the operation.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Tag is already assigned to the Api.",
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "201": {
            "description": "Tag was assigned to the Api.",
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ApiTags"
        ],
        "x-ms-examples": {
          "ApiManagementCreateApiTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "apiId": "5931a75ae4bbd512a88c680b",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "tagId1"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags": {
      "get": {
        "description": "Lists all Tags associated with the Product.",
        "operationId": "Tag_ListByProduct",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Product identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "productId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "| Field       | Supported operators    | Supported functions                         |\n|-------------|------------------------|---------------------------------------------|\n| id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of records to return.",
            "format": "int32",
            "in": "query",
            "minimum": 1,
            "name": "$top",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Number of records to skip.",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "$skip",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returns a collection of tags associated with the Product entity.",
            "schema": {
              "description": "Paged Tag list representation.",
              "properties": {
                "nextLink": {
                  "description": "Next page link if any.",
                  "type": "string"
                },
                "value": {
                  "description": "Page values.",
                  "items": {
                    "allOf": [
                      {
                        "description": "The Resource definition.",
                        "properties": {
                          "id": {
                            "description": "Resource ID.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "name": {
                            "description": "Resource name.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "type": {
                            "description": "Resource type for API Management resource.",
                            "readOnly": true,
                            "type": "string"
                          }
                        },
                        "x-ms-azure-resource": true
                      }
                    ],
                    "description": "Tag Contract details.",
                    "properties": {
                      "properties": {
                        "description": "Tag contract Properties.",
                        "properties": {
                          "displayName": {
                            "description": "Tag name.",
                            "maxLength": 160,
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "displayName"
                        ]
                      }
                    }
                  },
                  "type": "array"
                }
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ProductTags"
        ],
        "x-ms-examples": {
          "ApiManagementGetTagsForProduct": {
            "parameters": {
              "api-version": "2017-03-01",
              "productId": "57d2ef278aa04f0888cba3f1",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "nextLink": "",
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/5600b539c53f5b0062060002",
                      "name": "5600b539c53f5b0062060002",
                      "properties": {
                        "displayName": "tag1"
                      },
                      "type": "Microsoft.ApiManagement/service/tags"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "./apimtags.json#/definitions/TagContract",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags/{tagId}": {
      "delete": {
        "description": "Detach the tag from the Product.",
        "operationId": "Tag_DetachFromProduct",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Product identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "productId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "The entity state (Etag) version of the Api schema to update. A value of \"*\" can be used for If-Match to unconditionally apply the operation.",
            "in": "header",
            "name": "If-Match",
            "required": true,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully detached the tag from the Product."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ProductTags"
        ],
        "x-ms-examples": {
          "ApiManagementDeleteProductTag": {
            "parameters": {
              "If-Match": "*",
              "api-version": "2017-03-01",
              "productId": "59d5b28d1f7fab116c282650",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59d5b28e1f7fab116402044e"
            },
            "responses": {
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get tag associated with the Product.",
        "operationId": "Tag_GetByProduct",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Product identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "productId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Gets the details of the tag specified by its identifier.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            },
            "schema": {
              "allOf": [
                {
                  "description": "The Resource definition.",
                  "properties": {
                    "id": {
                      "description": "Resource ID.",
                      "readOnly": true,
                      "type": "string"
                    },
                    "name": {
                      "description": "Resource name.",
                      "readOnly": true,
                      "type": "string"
                    },
                    "type": {
                      "description": "Resource type for API Management resource.",
                      "readOnly": true,
                      "type": "string"
                    }
                  },
                  "x-ms-azure-resource": true
                }
              ],
              "description": "Tag Contract details.",
              "properties": {
                "properties": {
                  "description": "Tag contract Properties.",
                  "properties": {
                    "displayName": {
                      "description": "Tag name.",
                      "maxLength": 160,
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "required": [
                    "displayName"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ProductTags"
        ],
        "x-ms-examples": {
          "ApiManagementGetProductTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "productId": "59d6bb8f1f7fab13dc67ec9b",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/59306a29e4bbd510dc24e5f9",
                  "name": "59306a29e4bbd510dc24e5f9",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      },
      "head": {
        "description": "Gets the entity state version of the tag specified by its identifier.",
        "operationId": "Tag_GetEntityStateByProduct",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Product identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "productId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response body, ETag header entity state version.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ProductTags"
        ],
        "x-ms-examples": {
          "ApiManagementHeadProductTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "productId": "59306a29e4bbd510dc24e5f8",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "headers": {
                  "Etag": "AAAAAAAACCI="
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Assign tag to the Product.",
        "operationId": "Tag_AssignToProduct",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Product identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "productId",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "The entity state (Etag) version of the Tag to update. A value of \"*\" can be used for If-Match to unconditionally apply the operation.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Tag is already assigned to the Product.",
            "schema": {
              "allOf": [
                {
                  "description": "The Resource definition.",
                  "properties": {
                    "id": {
                      "description": "Resource ID.",
                      "readOnly": true,
                      "type": "string"
                    },
                    "name": {
                      "description": "Resource name.",
                      "readOnly": true,
                      "type": "string"
                    },
                    "type": {
                      "description": "Resource type for API Management resource.",
                      "readOnly": true,
                      "type": "string"
                    }
                  },
                  "x-ms-azure-resource": true
                }
              ],
              "description": "Tag Contract details.",
              "properties": {
                "properties": {
                  "description": "Tag contract Properties.",
                  "properties": {
                    "displayName": {
                      "description": "Tag name.",
                      "maxLength": 160,
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "required": [
                    "displayName"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Tag was assigned to the Product.",
            "schema": {
              "allOf": [
                {
                  "description": "The Resource definition.",
                  "properties": {
                    "id": {
                      "description": "Resource ID.",
                      "readOnly": true,
                      "type": "string"
                    },
                    "name": {
                      "description": "Resource name.",
                      "readOnly": true,
                      "type": "string"
                    },
                    "type": {
                      "description": "Resource type for API Management resource.",
                      "readOnly": true,
                      "type": "string"
                    }
                  },
                  "x-ms-azure-resource": true
                }
              ],
              "description": "Tag Contract details.",
              "properties": {
                "properties": {
                  "description": "Tag contract Properties.",
                  "properties": {
                    "displayName": {
                      "description": "Tag name.",
                      "maxLength": 160,
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "required": [
                    "displayName"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "ProductTags"
        ],
        "x-ms-examples": {
          "ApiManagementCreateProductTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "productId": "5931a75ae4bbd512a88c680b",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "tagId1"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tags": {
      "get": {
        "description": "Lists a collection of tags defined within a service instance.",
        "operationId": "Tag_ListByService",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "| Field       | Supported operators    | Supported functions                         |\n|-------------|------------------------|---------------------------------------------|\n| id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of records to return.",
            "format": "int32",
            "in": "query",
            "minimum": 1,
            "name": "$top",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Number of records to skip.",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "$skip",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Lists a collection of Tag entities.",
            "schema": {
              "$ref": "#/definitions/TagCollection"
            }
          }
        },
        "tags": [
          "Tags"
        ],
        "x-ms-examples": {
          "ApiManagementListTags": {
            "parameters": {
              "api-version": "2017-03-01",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid"
            },
            "responses": {
              "200": {
                "body": {
                  "nextLink": "",
                  "value": [
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/5600b59375ff190048020001",
                      "name": "5600b59375ff190048020001",
                      "properties": {
                        "displayName": "tag1"
                      },
                      "type": "Microsoft.ApiManagement/service/tags"
                    },
                    {
                      "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/5600b59375ff190048020002",
                      "name": "5600b59375ff190048020002",
                      "properties": {
                        "displayName": "tag2"
                      },
                      "type": "Microsoft.ApiManagement/service/tags"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/TagContract",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tags/{tagId}": {
      "delete": {
        "description": "Deletes specific tag of the API Management service instance.",
        "operationId": "Tag_Delete",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "ETag of the Tag Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.",
            "in": "header",
            "name": "If-Match",
            "required": true,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The tag was successfully deleted."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Tags"
        ],
        "x-ms-examples": {
          "ApiManagementDeleteTag": {
            "parameters": {
              "If-Match": "*",
              "api-version": "2017-03-01",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "tagId1"
            },
            "responses": {
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Gets the details of the tag specified by its identifier.",
        "operationId": "Tag_Get",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The response body contains the specified Tag entity.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Tags"
        ],
        "x-ms-examples": {
          "ApiManagementGetTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/59306a29e4bbd510dc24e5f9",
                  "name": "59306a29e4bbd510dc24e5f9",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      },
      "head": {
        "description": "Gets the entity state version of the tag specified by its identifier.",
        "operationId": "Tag_GetEntityState",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response body, ETag header entity state version.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Tags"
        ],
        "x-ms-examples": {
          "ApiManagementGetTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "59306a29e4bbd510dc24e5f9"
            },
            "responses": {
              "200": {
                "headers": {
                  "Etag": "AAAAAAAACCI="
                }
              }
            }
          }
        }
      },
      "patch": {
        "description": "Updates the details of the tag specified by its identifier.",
        "operationId": "Tag_Update",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Update parameters.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TagCreateUpdateParameters"
            }
          },
          {
            "description": "ETag of the Tag Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.",
            "in": "header",
            "name": "If-Match",
            "required": true,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The tag details were successfully updated."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Tags"
        ],
        "x-ms-examples": {
          "ApiManagementUpdateTag": {
            "parameters": {
              "If-Match": "*",
              "api-version": "2017-03-01",
              "parameters": {
                "properties": {
                  "displayName": "temp tag"
                }
              },
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "temptag"
            },
            "responses": {
              "204": {}
            }
          }
        }
      },
      "put": {
        "description": "Creates a tag.",
        "operationId": "Tag_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/TagIdParameter"
          },
          {
            "description": "Create parameters.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TagCreateUpdateParameters"
            }
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Tag already exists.",
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "201": {
            "description": "Tag was created successfully.",
            "schema": {
              "$ref": "#/definitions/TagContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Tags"
        ],
        "x-ms-examples": {
          "ApiManagementCreateTag": {
            "parameters": {
              "api-version": "2017-03-01",
              "parameters": {
                "properties": {
                  "displayName": "tag1"
                }
              },
              "resourceGroupName": "rg1",
              "serviceName": "apimService1",
              "subscriptionId": "subid",
              "tagId": "tagId1"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tags/tagId1",
                  "name": "tagId1",
                  "properties": {
                    "displayName": "tag1"
                  },
                  "type": "Microsoft.ApiManagement/service/tags"
                }
              }
            }
          }
        }
      }
    }
  },
  "definitions": {
    "TagCollection": {
      "description": "Paged Tag list representation.",
      "properties": {
        "nextLink": {
          "description": "Next page link if any.",
          "type": "string"
        },
        "value": {
          "description": "Page values.",
          "items": {
            "allOf": [
              {
                "description": "The Resource definition.",
                "properties": {
                  "id": {
                    "description": "Resource ID.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "name": {
                    "description": "Resource name.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "type": {
                    "description": "Resource type for API Management resource.",
                    "readOnly": true,
                    "type": "string"
                  }
                },
                "x-ms-azure-resource": true
              }
            ],
            "description": "Tag Contract details.",
            "properties": {
              "properties": {
                "description": "Tag contract Properties.",
                "properties": {
                  "displayName": {
                    "description": "Tag name.",
                    "maxLength": 160,
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "displayName"
                ]
              }
            }
          },
          "type": "array"
        }
      }
    },
    "TagContract": {
      "allOf": [
        {
          "description": "The Resource definition.",
          "properties": {
            "id": {
              "description": "Resource ID.",
              "readOnly": true,
              "type": "string"
            },
            "name": {
              "description": "Resource name.",
              "readOnly": true,
              "type": "string"
            },
            "type": {
              "description": "Resource type for API Management resource.",
              "readOnly": true,
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      ],
      "description": "Tag Contract details.",
      "properties": {
        "properties": {
          "description": "Tag contract Properties.",
          "properties": {
            "displayName": {
              "description": "Tag name.",
              "maxLength": 160,
              "minLength": 1,
              "type": "string"
            }
          },
          "required": [
            "displayName"
          ]
        }
      }
    },
    "TagContractProperties": {
      "description": "Tag contract Properties.",
      "properties": {
        "displayName": {
          "description": "Tag name.",
          "maxLength": 160,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "displayName"
      ]
    },
    "TagCreateUpdateParameters": {
      "description": "Parameters supplied to Create/Update Tag operations.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/TagContractProperties",
          "description": "Properties supplied to Create Tag operation.",
          "x-ms-client-flatten": true
        }
      }
    },
    "TagDescriptionBaseProperties": {
      "description": "Parameters supplied to the Create TagDescription operation.",
      "properties": {
        "description": {
          "description": "Description of the Tag.",
          "type": "string"
        },
        "externalDocsDescription": {
          "description": "Description of the external resources describing the tag.",
          "type": "string"
        },
        "externalDocsUrl": {
          "description": "Absolute URL of external resources describing the tag.",
          "maxLength": 2000,
          "type": "string"
        }
      }
    },
    "TagDescriptionCollection": {
      "description": "Paged TagDescription list representation.",
      "properties": {
        "nextLink": {
          "description": "Next page link if any.",
          "type": "string"
        },
        "value": {
          "description": "Page values.",
          "items": {
            "$ref": "#/definitions/TagDescriptionContract"
          },
          "type": "array"
        }
      }
    },
    "TagDescriptionContract": {
      "allOf": [
        {
          "description": "The Resource definition.",
          "properties": {
            "id": {
              "description": "Resource ID.",
              "readOnly": true,
              "type": "string"
            },
            "name": {
              "description": "Resource name.",
              "readOnly": true,
              "type": "string"
            },
            "type": {
              "description": "Resource type for API Management resource.",
              "readOnly": true,
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      ],
      "description": "Contract details.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/TagDescriptionContractProperties",
          "description": "TagDescription entity contract properties.",
          "x-ms-client-flatten": true
        }
      }
    },
    "TagDescriptionContractProperties": {
      "allOf": [
        {
          "$ref": "#/definitions/TagDescriptionBaseProperties"
        }
      ],
      "description": "TagDescription contract Properties.",
      "properties": {
        "displayName": {
          "description": "Tag name.",
          "maxLength": 160,
          "minLength": 1,
          "type": "string"
        }
      }
    },
    "TagDescriptionCreateParameters": {
      "description": "Parameters supplied to the Create TagDescription operation.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/TagDescriptionBaseProperties",
          "description": "Properties supplied to Create TagDescription operation.",
          "x-ms-client-flatten": true
        }
      }
    }
  }
}