{
  "openapi": "3.0.1",
  "info": {
    "title": "EventGridManagementClient",
    "description": "Azure EventGrid Management Client",
    "version": "2019-06-01"
  },
  "servers": [
    {
      "url": "https://management.azure.com/"
    }
  ],
  "paths": {
    "/providers/Microsoft.EventGrid/operations": {
      "get": {
        "tags": [
          "Operations"
        ],
        "summary": "List available operations.",
        "description": "List the available operations supported by the Microsoft.EventGrid resource provider.",
        "operationId": "Operations_List",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/providers/Microsoft.EventGrid/topicTypes": {
      "get": {
        "tags": [
          "TopicTypes"
        ],
        "summary": "List topic types.",
        "description": "List all registered topic types.",
        "operationId": "TopicTypes_List",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopicTypesListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 404 Not Found.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}": {
      "get": {
        "tags": [
          "TopicTypes"
        ],
        "summary": "Get a topic type.",
        "description": "Get information about a topic type.",
        "operationId": "TopicTypes_Get",
        "parameters": [
          {
            "name": "topicTypeName",
            "in": "path",
            "description": "Name of the topic type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopicTypeInfo"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 404 Not Found.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventTypes": {
      "get": {
        "tags": [
          "TopicTypes"
        ],
        "summary": "List event types.",
        "description": "List event types for a topic type.",
        "operationId": "TopicTypes_ListEventTypes",
        "parameters": [
          {
            "name": "topicTypeName",
            "in": "path",
            "description": "Name of the topic type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventTypesListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 404 Not Found.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/domains": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List domains under an Azure subscription.",
        "description": "List all the domains under an Azure subscription.",
        "operationId": "Domains_ListBySubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "Get an aggregated list of all global event subscriptions under an Azure subscription.",
        "description": "List all aggregated global event subscriptions under a specific Azure subscription.",
        "operationId": "EventSubscriptions_ListGlobalBySubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/locations/{location}/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all regional event subscriptions under an Azure subscription.",
        "description": "List all event subscriptions from the given location under a specific Azure subscription.",
        "operationId": "EventSubscriptions_ListRegionalBySubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "path",
            "description": "Name of the location.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/locations/{location}/topicTypes/{topicTypeName}/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all regional event subscriptions under an Azure subscription for a topic type.",
        "description": "List all event subscriptions from the given location under a specific Azure subscription and topic type.",
        "operationId": "EventSubscriptions_ListRegionalBySubscriptionForTopicType",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "path",
            "description": "Name of the location.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicTypeName",
            "in": "path",
            "description": "Name of the topic type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all global event subscriptions for a topic type.",
        "description": "List all global event subscriptions under an Azure subscription for a topic type.",
        "operationId": "EventSubscriptions_ListGlobalBySubscriptionForTopicType",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicTypeName",
            "in": "path",
            "description": "Name of the topic type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/topics": {
      "get": {
        "tags": [
          "Topics"
        ],
        "summary": "List topics under an Azure subscription.",
        "description": "List all the topics under an Azure subscription.",
        "operationId": "Topics_ListBySubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopicsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List domains under a resource group.",
        "description": "List all the domains under a resource group.",
        "operationId": "Domains_ListByResourceGroup",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get a domain.",
        "description": "Get properties of a domain.",
        "operationId": "Domains_Get",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Domain"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      },
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Create or update a domain.",
        "description": "Asynchronously creates or updates a new domain with the specified parameters.",
        "operationId": "Domains_CreateOrUpdate",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Domain information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Domain"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Domain"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      },
      "delete": {
        "tags": [
          "Domains"
        ],
        "summary": "Delete a domain.",
        "description": "Delete existing domain.",
        "operationId": "Domains_Delete",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 404 Not Found.\n\n * 500 Internal Server Error."
          }
        }
      },
      "patch": {
        "tags": [
          "Domains"
        ],
        "summary": "Update a domain.",
        "description": "Asynchronously updates a domain with the specified parameters.",
        "operationId": "Domains_Update",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Domain update information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainUpdateParameters"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Domain update request accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Domain"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/listKeys": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "List keys for a domain.",
        "description": "List the two keys used to publish to a domain.",
        "operationId": "Domains_ListSharedAccessKeys",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainSharedAccessKeys"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/regenerateKey": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Regenerate key for a domain.",
        "description": "Regenerate a shared access key for a domain.",
        "operationId": "Domains_RegenerateKey",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body to regenerate key.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainRegenerateKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainSharedAccessKeys"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics": {
      "get": {
        "tags": [
          "DomainTopics"
        ],
        "summary": "List domain topics.",
        "description": "List all the topics in a domain.",
        "operationId": "DomainTopics_ListByDomain",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Domain name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainTopicsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}": {
      "get": {
        "tags": [
          "DomainTopics"
        ],
        "summary": "Get a domain topic.",
        "description": "Get properties of a domain topic.",
        "operationId": "DomainTopics_Get",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainTopicName",
            "in": "path",
            "description": "Name of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainTopic"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      },
      "put": {
        "tags": [
          "DomainTopics"
        ],
        "summary": "Create or update a domain topic.",
        "description": "Asynchronously creates or updates a new domain topic with the specified parameters.",
        "operationId": "DomainTopics_CreateOrUpdate",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainTopicName",
            "in": "path",
            "description": "Name of the domain topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainTopic"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      },
      "delete": {
        "tags": [
          "DomainTopics"
        ],
        "summary": "Delete a domain topic.",
        "description": "Delete existing domain topic.",
        "operationId": "DomainTopics_Delete",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainTopicName",
            "in": "path",
            "description": "Name of the domain topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 404 Not Found.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/providers/Microsoft.EventGrid/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all event subscriptions for a specific domain topic.",
        "description": "List all event subscriptions that have been created for a specific domain topic.",
        "operationId": "EventSubscriptions_ListByDomainTopic",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "path",
            "description": "Name of the top level domain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicName",
            "in": "path",
            "description": "Name of the domain topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all global event subscriptions under an Azure subscription and resource group.",
        "description": "List all global event subscriptions under a specific Azure subscription and resource group.",
        "operationId": "EventSubscriptions_ListGlobalByResourceGroup",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/locations/{location}/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all regional event subscriptions under an Azure subscription and resource group.",
        "description": "List all event subscriptions from the given location under a specific Azure subscription and resource group.",
        "operationId": "EventSubscriptions_ListRegionalByResourceGroup",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "path",
            "description": "Name of the location.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/locations/{location}/topicTypes/{topicTypeName}/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all regional event subscriptions under an Azure subscription and resource group for a topic type.",
        "description": "List all event subscriptions from the given location under a specific Azure subscription and resource group and topic type.",
        "operationId": "EventSubscriptions_ListRegionalByResourceGroupForTopicType",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "path",
            "description": "Name of the location.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicTypeName",
            "in": "path",
            "description": "Name of the topic type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all global event subscriptions under a resource group for a topic type.",
        "description": "List all global event subscriptions under a resource group for a specific topic type.",
        "operationId": "EventSubscriptions_ListGlobalByResourceGroupForTopicType",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicTypeName",
            "in": "path",
            "description": "Name of the topic type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics": {
      "get": {
        "tags": [
          "Topics"
        ],
        "summary": "List topics under a resource group.",
        "description": "List all the topics under a resource group.",
        "operationId": "Topics_ListByResourceGroup",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopicsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}": {
      "get": {
        "tags": [
          "Topics"
        ],
        "summary": "Get a topic.",
        "description": "Get properties of a topic.",
        "operationId": "Topics_Get",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicName",
            "in": "path",
            "description": "Name of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Topic"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      },
      "put": {
        "tags": [
          "Topics"
        ],
        "summary": "Create a topic.",
        "description": "Asynchronously creates a new topic with the specified parameters.",
        "operationId": "Topics_CreateOrUpdate",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicName",
            "in": "path",
            "description": "Name of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Topic information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Topic"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Topic"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      },
      "delete": {
        "tags": [
          "Topics"
        ],
        "summary": "Delete a topic.",
        "description": "Delete existing topic.",
        "operationId": "Topics_Delete",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicName",
            "in": "path",
            "description": "Name of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 404 Not Found.\n\n * 500 Internal Server Error."
          }
        }
      },
      "patch": {
        "tags": [
          "Topics"
        ],
        "summary": "Update a topic.",
        "description": "Asynchronously updates a topic with the specified parameters.",
        "operationId": "Topics_Update",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicName",
            "in": "path",
            "description": "Name of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Topic update information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopicUpdateParameters"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Topic update request accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Topic"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/listKeys": {
      "post": {
        "tags": [
          "Topics"
        ],
        "summary": "List keys for a topic.",
        "description": "List the two keys used to publish to a topic.",
        "operationId": "Topics_ListSharedAccessKeys",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicName",
            "in": "path",
            "description": "Name of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopicSharedAccessKeys"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/regenerateKey": {
      "post": {
        "tags": [
          "Topics"
        ],
        "summary": "Regenerate key for a topic.",
        "description": "Regenerate a shared access key for a topic.",
        "operationId": "Topics_RegenerateKey",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topicName",
            "in": "path",
            "description": "Name of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body to regenerate key.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopicRegenerateKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopicSharedAccessKeys"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{providerNamespace}/{resourceTypeName}/{resourceName}/providers/Microsoft.EventGrid/eventSubscriptions": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "List all event subscriptions for a specific topic.",
        "description": "List all event subscriptions that have been created for a specific topic.",
        "operationId": "EventSubscriptions_ListByResource",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providerNamespace",
            "in": "path",
            "description": "Namespace of the provider of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceTypeName",
            "in": "path",
            "description": "Name of the resource type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceName",
            "in": "path",
            "description": "Name of the resource.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionsListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{providerNamespace}/{resourceTypeName}/{resourceName}/providers/Microsoft.EventGrid/eventTypes": {
      "get": {
        "tags": [
          "Topics"
        ],
        "summary": "List topic event types.",
        "description": "List event types for a topic.",
        "operationId": "Topics_ListEventTypes",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group within the user's subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providerNamespace",
            "in": "path",
            "description": "Namespace of the provider of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceTypeName",
            "in": "path",
            "description": "Name of the topic type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceName",
            "in": "path",
            "description": "Name of the topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventTypesListResult"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}": {
      "get": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "Get an event subscription.",
        "description": "Get properties of an event subscription.",
        "operationId": "EventSubscriptions_Get",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "description": "The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventSubscriptionName",
            "in": "path",
            "description": "Name of the event subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      },
      "put": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "Create or update an event subscription.",
        "description": "Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope.",
        "operationId": "EventSubscriptions_CreateOrUpdate",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "description": "The identifier of the resource to which the event subscription needs to be created or updated. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventSubscriptionName",
            "in": "path",
            "description": "Name of the event subscription. Event subscription names must be between 3 and 64 characters in length and should use alphanumeric letters only.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Event subscription properties containing the destination and filter information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventSubscription"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "EventSubscription CreateOrUpdate request accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      },
      "delete": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "Delete an event subscription.",
        "description": "Delete an existing event subscription.",
        "operationId": "EventSubscriptions_Delete",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "description": "The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventSubscriptionName",
            "in": "path",
            "description": "Name of the event subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "202": {
            "description": "Accepted"
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 404 Not Found.\n\n * 500 Internal Server Error."
          }
        }
      },
      "patch": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "Update an event subscription.",
        "description": "Asynchronously updates an existing event subscription.",
        "operationId": "EventSubscriptions_Update",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "description": "The scope of existing event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventSubscriptionName",
            "in": "path",
            "description": "Name of the event subscription to be updated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated event subscription information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventSubscriptionUpdateParameters"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "EventSubscription update request accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    },
    "/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}/getFullUrl": {
      "post": {
        "tags": [
          "EventSubscriptions"
        ],
        "summary": "Get full URL of an event subscription.",
        "description": "Get the full endpoint URL for an event subscription.",
        "operationId": "EventSubscriptions_GetFullUrl",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "description": "The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventSubscriptionName",
            "in": "path",
            "description": "Name of the event subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "Version of the API to be used with the client request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscriptionFullUrl"
                }
              }
            }
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AdvancedFilter": {
        "required": [
          "operatorType"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The field/property in the event based on which you want to filter."
          },
          "operatorType": {
            "type": "string",
            "description": "The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others.",
            "enum": [
              "NumberIn",
              "NumberNotIn",
              "NumberLessThan",
              "NumberGreaterThan",
              "NumberLessThanOrEquals",
              "NumberGreaterThanOrEquals",
              "BoolEquals",
              "StringIn",
              "StringNotIn",
              "StringBeginsWith",
              "StringEndsWith",
              "StringContains"
            ]
          }
        },
        "description": "This is the base type that represents an advanced filter. To configure an advanced filter, do not directly instantiate an object of this class. Instead, instantiate an object of a derived class such as BoolEqualsAdvancedFilter, NumberInAdvancedFilter, StringEqualsAdvancedFilter etc. depending on the type of the key based on which you want to filter.",
        "discriminator": {
          "propertyName": "operatorType"
        }
      },
      "BoolEqualsAdvancedFilter": {
        "properties": {
          "value": {
            "type": "boolean",
            "description": "The boolean filter value."
          }
        },
        "description": "BoolEquals Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "DeadLetterDestination": {
        "required": [
          "endpointType"
        ],
        "type": "object",
        "properties": {
          "endpointType": {
            "type": "string",
            "description": "Type of the endpoint for the dead letter destination",
            "enum": [
              "StorageBlob"
            ]
          }
        },
        "description": "Information about the dead letter destination for an event subscription. To configure a deadletter destination, do not directly instantiate an object of this class. Instead, instantiate an object of a derived class. Currently, StorageBlobDeadLetterDestination is the only class that derives from this class.",
        "discriminator": {
          "propertyName": "endpointType"
        }
      },
      "Domain": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/DomainProperties"
          }
        },
        "description": "EventGrid Domain.",
        "allOf": [
          {
            "$ref": "#/components/schemas/TrackedResource"
          }
        ]
      },
      "DomainProperties": {
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "description": "Endpoint for the domain.",
            "readOnly": true
          },
          "provisioningState": {
            "type": "string",
            "description": "Provisioning state of the domain.",
            "readOnly": true,
            "enum": [
              "Creating",
              "Updating",
              "Deleting",
              "Succeeded",
              "Canceled",
              "Failed"
            ]
          }
        },
        "description": "Properties of the Domain."
      },
      "DomainRegenerateKeyRequest": {
        "required": [
          "keyName"
        ],
        "type": "object",
        "properties": {
          "keyName": {
            "type": "string",
            "description": "Key name to regenerate key1 or key2."
          }
        },
        "description": "Domain regenerate share access key request."
      },
      "DomainSharedAccessKeys": {
        "type": "object",
        "properties": {
          "key1": {
            "type": "string",
            "description": "Shared access key1 for the domain."
          },
          "key2": {
            "type": "string",
            "description": "Shared access key2 for the domain."
          }
        },
        "description": "Shared access keys of the Domain."
      },
      "DomainTopic": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/DomainTopicProperties"
          }
        },
        "description": "Domain Topic.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Resource"
          }
        ]
      },
      "DomainTopicProperties": {
        "type": "object",
        "properties": {
          "provisioningState": {
            "type": "string",
            "description": "Provisioning state of the domain topic.",
            "enum": [
              "Creating",
              "Updating",
              "Deleting",
              "Succeeded",
              "Canceled",
              "Failed"
            ]
          }
        },
        "description": "Properties of the Domain Topic."
      },
      "DomainTopicsListResult": {
        "type": "object",
        "properties": {
          "nextLink": {
            "type": "string",
            "description": "A link for the next page of domain topics."
          },
          "value": {
            "type": "array",
            "description": "A collection of Domain Topics.",
            "items": {
              "$ref": "#/components/schemas/DomainTopic"
            }
          }
        },
        "description": "Result of the List Domain Topics operation."
      },
      "DomainUpdateParameters": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the domains resource."
          }
        },
        "description": "Properties of the Domain update."
      },
      "DomainsListResult": {
        "type": "object",
        "properties": {
          "nextLink": {
            "type": "string",
            "description": "A link for the next page of domains."
          },
          "value": {
            "type": "array",
            "description": "A collection of Domains.",
            "items": {
              "$ref": "#/components/schemas/Domain"
            }
          }
        },
        "description": "Result of the List Domains operation."
      },
      "EventHubEventSubscriptionDestination": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/EventHubEventSubscriptionDestinationProperties"
          }
        },
        "description": "Information about the event hub destination for an event subscription",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSubscriptionDestination"
          }
        ]
      },
      "EventHubEventSubscriptionDestinationProperties": {
        "type": "object",
        "properties": {
          "resourceId": {
            "type": "string",
            "description": "The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription."
          }
        },
        "description": "The properties for a event hub destination."
      },
      "EventSubscription": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/EventSubscriptionProperties"
          }
        },
        "description": "Event Subscription",
        "allOf": [
          {
            "$ref": "#/components/schemas/Resource"
          }
        ]
      },
      "EventSubscriptionDestination": {
        "required": [
          "endpointType"
        ],
        "type": "object",
        "properties": {
          "endpointType": {
            "type": "string",
            "description": "Type of the endpoint for the event subscription destination",
            "enum": [
              "WebHook",
              "EventHub",
              "StorageQueue",
              "HybridConnection",
              "ServiceBusQueue"
            ]
          }
        },
        "description": "Information about the destination for an event subscription",
        "discriminator": {
          "propertyName": "endpointType"
        }
      },
      "EventSubscriptionFilter": {
        "type": "object",
        "properties": {
          "advancedFilters": {
            "type": "array",
            "description": "An array of advanced filters that are used for filtering event subscriptions.",
            "items": {
              "$ref": "#/components/schemas/AdvancedFilter"
            }
          },
          "includedEventTypes": {
            "type": "array",
            "description": "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.",
            "items": {
              "type": "string"
            }
          },
          "isSubjectCaseSensitive": {
            "type": "boolean",
            "description": "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter \r\nshould be compared in a case sensitive manner.",
            "default": false
          },
          "subjectBeginsWith": {
            "type": "string",
            "description": "An optional string to filter events for an event subscription based on a resource path prefix.\r\nThe format of this depends on the publisher of the events. \r\nWildcard characters are not supported in this path."
          },
          "subjectEndsWith": {
            "type": "string",
            "description": "An optional string to filter events for an event subscription based on a resource path suffix.\r\nWildcard characters are not supported in this path."
          }
        },
        "description": "Filter for the Event Subscription."
      },
      "EventSubscriptionFullUrl": {
        "type": "object",
        "properties": {
          "endpointUrl": {
            "type": "string",
            "description": "The URL that represents the endpoint of the destination of an event subscription."
          }
        },
        "description": "Full endpoint url of an event subscription"
      },
      "EventSubscriptionProperties": {
        "type": "object",
        "properties": {
          "deadLetterDestination": {
            "$ref": "#/components/schemas/DeadLetterDestination"
          },
          "destination": {
            "$ref": "#/components/schemas/EventSubscriptionDestination"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Expiration time of the event subscription.",
            "format": "date-time"
          },
          "filter": {
            "$ref": "#/components/schemas/EventSubscriptionFilter"
          },
          "labels": {
            "type": "array",
            "description": "List of user defined labels.",
            "items": {
              "type": "string"
            }
          },
          "provisioningState": {
            "type": "string",
            "description": "Provisioning state of the event subscription.",
            "readOnly": true,
            "enum": [
              "Creating",
              "Updating",
              "Deleting",
              "Succeeded",
              "Canceled",
              "Failed",
              "AwaitingManualAction"
            ]
          },
          "retryPolicy": {
            "$ref": "#/components/schemas/RetryPolicy"
          },
          "topic": {
            "type": "string",
            "description": "Name of the topic of the event subscription.",
            "readOnly": true
          }
        },
        "description": "Properties of the Event Subscription"
      },
      "EventSubscriptionUpdateParameters": {
        "type": "object",
        "properties": {
          "deadLetterDestination": {
            "$ref": "#/components/schemas/DeadLetterDestination"
          },
          "destination": {
            "$ref": "#/components/schemas/EventSubscriptionDestination"
          },
          "expirationTimeUtc": {
            "type": "string",
            "description": "Information about the expiration time for the event subscription.",
            "format": "date-time"
          },
          "filter": {
            "$ref": "#/components/schemas/EventSubscriptionFilter"
          },
          "labels": {
            "type": "array",
            "description": "List of user defined labels.",
            "items": {
              "type": "string"
            }
          },
          "retryPolicy": {
            "$ref": "#/components/schemas/RetryPolicy"
          }
        },
        "description": "Properties of the Event Subscription update"
      },
      "EventSubscriptionsListResult": {
        "type": "object",
        "properties": {
          "nextLink": {
            "type": "string",
            "description": "A link for the next page of event subscriptions"
          },
          "value": {
            "type": "array",
            "description": "A collection of EventSubscriptions",
            "items": {
              "$ref": "#/components/schemas/EventSubscription"
            }
          }
        },
        "description": "Result of the List EventSubscriptions operation"
      },
      "EventType": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/EventTypeProperties"
          }
        },
        "description": "Event Type for a subject under a topic",
        "allOf": [
          {
            "$ref": "#/components/schemas/Resource"
          }
        ]
      },
      "EventTypeProperties": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the event type."
          },
          "displayName": {
            "type": "string",
            "description": "Display name of the event type."
          },
          "isInDefaultSet": {
            "type": "boolean",
            "description": "IsInDefaultSet flag of the event type."
          },
          "schemaUrl": {
            "type": "string",
            "description": "Url of the schema for this event type."
          }
        },
        "description": "Properties of the event type"
      },
      "EventTypesListResult": {
        "type": "object",
        "properties": {
          "value": {
            "type": "array",
            "description": "A collection of event types",
            "items": {
              "$ref": "#/components/schemas/EventType"
            }
          }
        },
        "description": "Result of the List Event Types operation"
      },
      "HybridConnectionEventSubscriptionDestination": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/HybridConnectionEventSubscriptionDestinationProperties"
          }
        },
        "description": "Information about the HybridConnection destination for an event subscription.",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSubscriptionDestination"
          }
        ]
      },
      "HybridConnectionEventSubscriptionDestinationProperties": {
        "type": "object",
        "properties": {
          "resourceId": {
            "type": "string",
            "description": "The Azure Resource ID of an hybrid connection that is the destination of an event subscription."
          }
        },
        "description": "The properties for a hybrid connection destination."
      },
      "NumberGreaterThanAdvancedFilter": {
        "properties": {
          "value": {
            "type": "number",
            "description": "The filter value.",
            "format": "double"
          }
        },
        "description": "NumberGreaterThan Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "NumberGreaterThanOrEqualsAdvancedFilter": {
        "properties": {
          "value": {
            "type": "number",
            "description": "The filter value.",
            "format": "double"
          }
        },
        "description": "NumberGreaterThanOrEquals Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "NumberInAdvancedFilter": {
        "properties": {
          "values": {
            "type": "array",
            "description": "The set of filter values.",
            "items": {
              "type": "number",
              "format": "double"
            }
          }
        },
        "description": "NumberIn Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "NumberLessThanAdvancedFilter": {
        "properties": {
          "value": {
            "type": "number",
            "description": "The filter value.",
            "format": "double"
          }
        },
        "description": "NumberLessThan Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "NumberLessThanOrEqualsAdvancedFilter": {
        "properties": {
          "value": {
            "type": "number",
            "description": "The filter value.",
            "format": "double"
          }
        },
        "description": "NumberLessThanOrEquals Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "NumberNotInAdvancedFilter": {
        "properties": {
          "values": {
            "type": "array",
            "description": "The set of filter values.",
            "items": {
              "type": "number",
              "format": "double"
            }
          }
        },
        "description": "NumberNotIn Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "Operation": {
        "type": "object",
        "properties": {
          "display": {
            "$ref": "#/components/schemas/OperationInfo"
          },
          "name": {
            "type": "string",
            "description": "Name of the operation"
          },
          "origin": {
            "type": "string",
            "description": "Origin of the operation"
          },
          "properties": {
            "type": "object",
            "description": "Properties of the operation"
          }
        },
        "description": "Represents an operation returned by the GetOperations request"
      },
      "OperationInfo": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the operation"
          },
          "operation": {
            "type": "string",
            "description": "Name of the operation"
          },
          "provider": {
            "type": "string",
            "description": "Name of the provider"
          },
          "resource": {
            "type": "string",
            "description": "Name of the resource type"
          }
        },
        "description": "Information about an operation"
      },
      "OperationsListResult": {
        "type": "object",
        "properties": {
          "value": {
            "type": "array",
            "description": "A collection of operations",
            "items": {
              "$ref": "#/components/schemas/Operation"
            }
          }
        },
        "description": "Result of the List Operations operation"
      },
      "Resource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fully qualified identifier of the resource.",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the resource.",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "Type of the resource.",
            "readOnly": true
          }
        },
        "description": "Definition of a Resource."
      },
      "RetryPolicy": {
        "type": "object",
        "properties": {
          "eventTimeToLiveInMinutes": {
            "type": "integer",
            "description": "Time To Live (in minutes) for events.",
            "format": "int32"
          },
          "maxDeliveryAttempts": {
            "type": "integer",
            "description": "Maximum number of delivery retry attempts for events.",
            "format": "int32"
          }
        },
        "description": "Information about the retry policy for an event subscription."
      },
      "ServiceBusQueueEventSubscriptionDestination": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/ServiceBusQueueEventSubscriptionDestinationProperties"
          }
        },
        "description": "Information about the service bus destination for an event subscription",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSubscriptionDestination"
          }
        ]
      },
      "ServiceBusQueueEventSubscriptionDestinationProperties": {
        "type": "object",
        "properties": {
          "resourceId": {
            "type": "string",
            "description": "The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription."
          }
        },
        "description": "The properties that represent the Service Bus destination of an event subscription."
      },
      "StorageBlobDeadLetterDestination": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/StorageBlobDeadLetterDestinationProperties"
          }
        },
        "description": "Information about the storage blob based dead letter destination.",
        "allOf": [
          {
            "$ref": "#/components/schemas/DeadLetterDestination"
          }
        ]
      },
      "StorageBlobDeadLetterDestinationProperties": {
        "type": "object",
        "properties": {
          "blobContainerName": {
            "type": "string",
            "description": "The name of the Storage blob container that is the destination of the deadletter events"
          },
          "resourceId": {
            "type": "string",
            "description": "The Azure Resource ID of the storage account that is the destination of the deadletter events"
          }
        },
        "description": "Properties of the storage blob based dead letter destination."
      },
      "StorageQueueEventSubscriptionDestination": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/StorageQueueEventSubscriptionDestinationProperties"
          }
        },
        "description": "Information about the storage queue destination for an event subscription.",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSubscriptionDestination"
          }
        ]
      },
      "StorageQueueEventSubscriptionDestinationProperties": {
        "type": "object",
        "properties": {
          "queueName": {
            "type": "string",
            "description": "The name of the Storage queue under a storage account that is the destination of an event subscription."
          },
          "resourceId": {
            "type": "string",
            "description": "The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription."
          }
        },
        "description": "The properties for a storage queue destination."
      },
      "StringBeginsWithAdvancedFilter": {
        "properties": {
          "values": {
            "type": "array",
            "description": "The set of filter values.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "StringBeginsWith Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "StringContainsAdvancedFilter": {
        "properties": {
          "values": {
            "type": "array",
            "description": "The set of filter values.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "StringContains Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "StringEndsWithAdvancedFilter": {
        "properties": {
          "values": {
            "type": "array",
            "description": "The set of filter values.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "StringEndsWith Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "StringInAdvancedFilter": {
        "properties": {
          "values": {
            "type": "array",
            "description": "The set of filter values.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "StringIn Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "StringNotInAdvancedFilter": {
        "properties": {
          "values": {
            "type": "array",
            "description": "The set of filter values.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "StringNotIn Advanced Filter.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvancedFilter"
          }
        ]
      },
      "Topic": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/TopicProperties"
          }
        },
        "description": "EventGrid Topic",
        "allOf": [
          {
            "$ref": "#/components/schemas/TrackedResource"
          }
        ]
      },
      "TopicProperties": {
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "description": "Endpoint for the topic.",
            "readOnly": true
          },
          "provisioningState": {
            "type": "string",
            "description": "Provisioning state of the topic.",
            "readOnly": true,
            "enum": [
              "Creating",
              "Updating",
              "Deleting",
              "Succeeded",
              "Canceled",
              "Failed"
            ]
          }
        },
        "description": "Properties of the Topic"
      },
      "TopicRegenerateKeyRequest": {
        "required": [
          "keyName"
        ],
        "type": "object",
        "properties": {
          "keyName": {
            "type": "string",
            "description": "Key name to regenerate key1 or key2"
          }
        },
        "description": "Topic regenerate share access key request"
      },
      "TopicSharedAccessKeys": {
        "type": "object",
        "properties": {
          "key1": {
            "type": "string",
            "description": "Shared access key1 for the topic."
          },
          "key2": {
            "type": "string",
            "description": "Shared access key2 for the topic."
          }
        },
        "description": "Shared access keys of the Topic"
      },
      "TopicTypeInfo": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/TopicTypeProperties"
          }
        },
        "description": "Properties of a topic type info.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Resource"
          }
        ]
      },
      "TopicTypeProperties": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the topic type."
          },
          "displayName": {
            "type": "string",
            "description": "Display Name for the topic type."
          },
          "provider": {
            "type": "string",
            "description": "Namespace of the provider of the topic type."
          },
          "provisioningState": {
            "type": "string",
            "description": "Provisioning state of the topic type",
            "enum": [
              "Creating",
              "Updating",
              "Deleting",
              "Succeeded",
              "Canceled",
              "Failed"
            ]
          },
          "resourceRegionType": {
            "type": "string",
            "description": "Region type of the resource.",
            "enum": [
              "RegionalResource",
              "GlobalResource"
            ]
          },
          "supportedLocations": {
            "type": "array",
            "description": "List of locations supported by this topic type.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Properties of a topic type."
      },
      "TopicTypesListResult": {
        "type": "object",
        "properties": {
          "value": {
            "type": "array",
            "description": "A collection of topic types",
            "items": {
              "$ref": "#/components/schemas/TopicTypeInfo"
            }
          }
        },
        "description": "Result of the List Topic Types operation"
      },
      "TopicUpdateParameters": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the resource"
          }
        },
        "description": "Properties of the Topic update"
      },
      "TopicsListResult": {
        "type": "object",
        "properties": {
          "nextLink": {
            "type": "string",
            "description": "A link for the next page of topics"
          },
          "value": {
            "type": "array",
            "description": "A collection of Topics",
            "items": {
              "$ref": "#/components/schemas/Topic"
            }
          }
        },
        "description": "Result of the List Topics operation"
      },
      "TrackedResource": {
        "required": [
          "location"
        ],
        "properties": {
          "location": {
            "type": "string",
            "description": "Location of the resource."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the resource."
          }
        },
        "description": "Definition of a Tracked Resource.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Resource"
          }
        ]
      },
      "WebHookEventSubscriptionDestination": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/WebHookEventSubscriptionDestinationProperties"
          }
        },
        "description": "Information about the webhook destination for an event subscription",
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSubscriptionDestination"
          }
        ]
      },
      "WebHookEventSubscriptionDestinationProperties": {
        "type": "object",
        "properties": {
          "endpointBaseUrl": {
            "type": "string",
            "description": "The base URL that represents the endpoint of the destination of an event subscription.",
            "readOnly": true
          },
          "endpointUrl": {
            "type": "string",
            "description": "The URL that represents the endpoint of the destination of an event subscription."
          }
        },
        "description": "Information about the webhook destination properties for an event subscription."
      }
    },
    "parameters": {
      "ApiVersionParameter": {
        "name": "api-version",
        "in": "query",
        "description": "Version of the API to be used with the client request.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "FilterParameter": {
        "name": "$filter",
        "in": "query",
        "description": "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.",
        "schema": {
          "type": "string"
        }
      },
      "SubscriptionIdParameter": {
        "name": "subscriptionId",
        "in": "path",
        "description": "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "TopParameter": {
        "name": "$top",
        "in": "query",
        "description": "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.",
        "schema": {
          "type": "integer"
        }
      }
    },
    "securitySchemes": {
      "azure_auth": {
        "type": "oauth2",
        "description": "Azure Active Directory OAuth2 Flow"
      }
    }
  }
}