{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "azure.local",
  "info": {
    "description": "Client that can be used to manage and query indexes and documents, as well as manage other resources, on an Azure Search service.",
    "title": "SearchServiceClient",
    "version": "2015-02-28",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/search/data-plane/Microsoft.Azure.Search.Service/preview/2015-02-28/searchservice.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "search-searchservice",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "parameters": {
    "ApiVersionParameter": {
      "description": "Client Api Version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/datasources": {
      "get": {
        "description": "Lists all datasources available for an Azure Search service.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946878.aspx"
        },
        "operationId": "DataSources_List",
        "parameters": [
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataSourceListResult"
            }
          }
        },
        "tags": [
          "DataSources"
        ],
        "x-ms-request-id": "request-id"
      },
      "post": {
        "description": "Creates a new Azure Search datasource.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946876.aspx"
        },
        "operationId": "DataSources_Create",
        "parameters": [
          {
            "description": "The definition of the datasource to create.",
            "in": "body",
            "name": "dataSource",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DataSource"
            }
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataSource"
            }
          }
        },
        "tags": [
          "DataSources"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/datasources('{dataSourceName}')": {
      "delete": {
        "description": "Deletes an Azure Search datasource.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946881.aspx"
        },
        "operationId": "DataSources_Delete",
        "parameters": [
          {
            "description": "The name of the datasource to delete.",
            "in": "path",
            "name": "dataSourceName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "404": {
            "description": ""
          }
        },
        "tags": [
          "DataSources"
        ],
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "Retrieves a datasource definition from Azure Search.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946893.aspx"
        },
        "operationId": "DataSources_Get",
        "parameters": [
          {
            "description": "The name of the datasource to retrieve.",
            "in": "path",
            "name": "dataSourceName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataSource"
            }
          }
        },
        "tags": [
          "DataSources"
        ],
        "x-ms-request-id": "request-id"
      },
      "put": {
        "description": "Creates a new Azure Search datasource or updates a datasource if it already exists.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946900.aspx"
        },
        "operationId": "DataSources_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the datasource to create or update.",
            "in": "path",
            "name": "dataSourceName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The definition of the datasource to create or update.",
            "in": "body",
            "name": "dataSource",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DataSource"
            }
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataSource"
            }
          },
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataSource"
            }
          }
        },
        "tags": [
          "DataSources"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/indexers": {
      "get": {
        "description": "Lists all indexers available for an Azure Search service.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946883.aspx"
        },
        "operationId": "Indexers_List",
        "parameters": [
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/IndexerListResult"
            }
          }
        },
        "tags": [
          "Indexers"
        ],
        "x-ms-request-id": "request-id"
      },
      "post": {
        "description": "Creates a new Azure Search indexer.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946899.aspx"
        },
        "operationId": "Indexers_Create",
        "parameters": [
          {
            "description": "The definition of the indexer to create.",
            "in": "body",
            "name": "indexer",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Indexer"
            }
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Indexer"
            }
          }
        },
        "tags": [
          "Indexers"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/indexers('{indexerName}')": {
      "delete": {
        "description": "Deletes an Azure Search indexer.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946898.aspx"
        },
        "operationId": "Indexers_Delete",
        "parameters": [
          {
            "description": "The name of the indexer to delete.",
            "in": "path",
            "name": "indexerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "404": {
            "description": ""
          }
        },
        "tags": [
          "Indexers"
        ],
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "Retrieves an indexer definition from Azure Search.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946874.aspx"
        },
        "operationId": "Indexers_Get",
        "parameters": [
          {
            "description": "The name of the indexer to retrieve.",
            "in": "path",
            "name": "indexerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Indexer"
            }
          }
        },
        "tags": [
          "Indexers"
        ],
        "x-ms-request-id": "request-id"
      },
      "put": {
        "description": "Creates a new Azure Search indexer or updates an indexer if it already exists.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946899.aspx"
        },
        "operationId": "Indexers_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the indexer to create or update.",
            "in": "path",
            "name": "indexerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The definition of the indexer to create or update.",
            "in": "body",
            "name": "indexer",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Indexer"
            }
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Indexer"
            }
          },
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Indexer"
            }
          }
        },
        "tags": [
          "Indexers"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/indexers('{indexerName}')/search.reset": {
      "post": {
        "description": "Resets the change tracking state associated with an Azure Search indexer.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946897.aspx"
        },
        "operationId": "Indexers_Reset",
        "parameters": [
          {
            "description": "The name of the indexer to reset.",
            "in": "path",
            "name": "indexerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "tags": [
          "Indexers"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/indexers('{indexerName}')/search.run": {
      "post": {
        "description": "Runs an Azure Search indexer on-demand.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946885.aspx"
        },
        "operationId": "Indexers_Run",
        "parameters": [
          {
            "description": "The name of the indexer to run.",
            "in": "path",
            "name": "indexerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": ""
          }
        },
        "tags": [
          "Indexers"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/indexers('{indexerName}')/search.status": {
      "get": {
        "description": "Returns the current status and execution history of an indexer.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn946884.aspx"
        },
        "operationId": "Indexers_GetStatus",
        "parameters": [
          {
            "description": "The name of the indexer for which to retrieve status.",
            "in": "path",
            "name": "indexerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/IndexerExecutionInfo"
            }
          }
        },
        "tags": [
          "Indexers"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/indexes": {
      "get": {
        "description": "Lists all indexes available for an Azure Search service.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn798923.aspx"
        },
        "operationId": "Indexes_List",
        "parameters": [
          {
            "description": "Selects which properties of the index definitions to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/IndexListResult"
            }
          }
        },
        "tags": [
          "Indexes"
        ],
        "x-ms-request-id": "request-id"
      },
      "post": {
        "description": "Creates a new Azure Search index.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn798941.aspx"
        },
        "operationId": "Indexes_Create",
        "parameters": [
          {
            "description": "The definition of the index to create.",
            "in": "body",
            "name": "index",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Index"
            }
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Index"
            }
          }
        },
        "tags": [
          "Indexes"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/indexes('{indexName}')": {
      "delete": {
        "description": "Deletes an Azure Search index and all the documents it contains.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn798926.aspx"
        },
        "operationId": "Indexes_Delete",
        "parameters": [
          {
            "description": "The name of the index to delete.",
            "in": "path",
            "name": "indexName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "404": {
            "description": ""
          }
        },
        "tags": [
          "Indexes"
        ],
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "Retrieves an index definition from Azure Search.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn798939.aspx"
        },
        "operationId": "Indexes_Get",
        "parameters": [
          {
            "description": "The name of the index to retrieve.",
            "in": "path",
            "name": "indexName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Index"
            }
          }
        },
        "tags": [
          "Indexes"
        ],
        "x-ms-request-id": "request-id"
      },
      "put": {
        "description": "Creates a new Azure Search index or updates an index if it already exists.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn800964.aspx"
        },
        "operationId": "Indexes_CreateOrUpdate",
        "parameters": [
          {
            "description": "The definition of the index to create or update.",
            "in": "path",
            "name": "indexName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The definition of the index to create or update.",
            "in": "body",
            "name": "index",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Index"
            }
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Index"
            }
          },
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Index"
            }
          }
        },
        "tags": [
          "Indexes"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/indexes('{indexName}')/search.stats": {
      "get": {
        "description": "Returns statistics for the given index, including a document count and storage usage.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/library/azure/dn798942.aspx"
        },
        "operationId": "Indexes_GetStatistics",
        "parameters": [
          {
            "description": "The name of the index for which to retrieve statistics.",
            "in": "path",
            "name": "indexName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Tracking ID sent with the request to help with debugging.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "name": "search-request-options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/IndexGetStatisticsResult"
            }
          }
        },
        "tags": [
          "Indexes"
        ],
        "x-ms-request-id": "request-id"
      }
    }
  },
  "definitions": {
    "CorsOptions": {
      "description": "Defines options to control Cross-Origin Resource Sharing (CORS) for an index.",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn798941.aspx"
      },
      "properties": {
        "allowedOrigins": {
          "description": "Gets the list of origins from which JavaScript code will be granted access to your index. Can contain a list of hosts of the form {protocol}://{fully-qualified-domain-name}[:{port#}], or a single '*' to allow all origins (not recommended).",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "maxAgeInSeconds": {
          "description": "Gets or sets the duration for which browsers should cache CORS preflight responses. Defaults to 5 minutes.",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "allowedOrigins"
      ]
    },
    "DataChangeDetectionPolicy": {
      "description": "Abstract base class for data change detection policies.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ]
    },
    "DataContainer": {
      "description": "Represents information about the entity (such as Azure SQL table or DocumentDb collection) that will be indexed.",
      "properties": {
        "name": {
          "description": "Gets or sets the name of the table or view (for Azure SQL data source) or collection (for DocumentDB data source) that will be indexed.",
          "type": "string"
        },
        "query": {
          "description": "Gets or sets a query that is applied to this data container. Only supported by DocumentDb datasources.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "DataDeletionDetectionPolicy": {
      "description": "Abstract base class for data deletion detection policies.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ]
    },
    "DataSource": {
      "description": "Represents a datasource definition in Azure Search, which can be used to configure an indexer.",
      "properties": {
        "container": {
          "$ref": "#/definitions/DataContainer",
          "description": "Gets or sets the data container for the datasource."
        },
        "credentials": {
          "$ref": "#/definitions/DataSourceCredentials",
          "description": "Gets or sets credentials for the datasource."
        },
        "dataChangeDetectionPolicy": {
          "$ref": "#/definitions/DataChangeDetectionPolicy",
          "description": "Gets or sets the data change detection policy for the datasource."
        },
        "dataDeletionDetectionPolicy": {
          "$ref": "#/definitions/DataDeletionDetectionPolicy",
          "description": "Gets or sets the data deletion detection policy for the datasource."
        },
        "description": {
          "description": "Gets or sets the description of the datasource.",
          "type": "string"
        },
        "name": {
          "description": "Gets or sets the name of the datasource.",
          "externalDocs": {
            "url": "https://msdn.microsoft.com/library/azure/dn857353.aspx"
          },
          "type": "string"
        },
        "type": {
          "description": "Gets or sets the type of the datasource.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "credentials",
        "container"
      ]
    },
    "DataSourceCredentials": {
      "description": "Represents credentials that can be used to connect to a datasource.",
      "properties": {
        "connectionString": {
          "description": "Gets or sets the connection string for the datasource.",
          "externalDocs": {
            "url": "https://msdn.microsoft.com/library/azure/dn946876.aspx"
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString"
      ]
    },
    "DataSourceListResult": {
      "description": "Response from a List Datasources request. If successful, it includes the full definitions of all datasources.",
      "properties": {
        "value": {
          "description": "Gets the datasources in the Search service.",
          "items": {
            "$ref": "#/definitions/DataSource"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "x-ms-external": true
    },
    "DistanceScoringFunction": {
      "allOf": [
        {
          "$ref": "#/definitions/ScoringFunction"
        }
      ],
      "description": "Defines a function that boosts scores based on distance from a geographic location.",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn798928.aspx"
      },
      "properties": {
        "distance": {
          "$ref": "#/definitions/DistanceScoringParameters",
          "description": "Gets parameter values for the distance scoring function."
        }
      },
      "required": [
        "distance"
      ],
      "x-ms-discriminator-value": "distance",
      "x-ms-external": true
    },
    "DistanceScoringParameters": {
      "description": "Provides parameter values to a distance scoring function.",
      "properties": {
        "boostingDistance": {
          "description": "Gets or sets the distance in kilometers from the reference location where the boosting range ends.",
          "format": "double",
          "type": "number"
        },
        "referencePointParameter": {
          "description": "Gets or sets the name of the parameter passed in search queries to specify the reference location.",
          "type": "string"
        }
      },
      "required": [
        "referencePointParameter",
        "boostingDistance"
      ],
      "x-ms-external": true
    },
    "Field": {
      "description": "Represents a field in an index definition in Azure Search, which describes the name, data type, and search behavior of a field.",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn798941.aspx"
      },
      "properties": {
        "analyzer": {
          "description": "Name of the text analyzer to use.",
          "externalDocs": {
            "url": "https://msdn.microsoft.com/library/azure/dn879793.aspx"
          },
          "type": "string"
        },
        "facetable": {
          "description": "Gets or sets a value indicating whether it is possible to facet on this field. Not valid for geo-point fields. Default is false.",
          "type": "boolean"
        },
        "filterable": {
          "description": "Gets or sets a value indicating whether the field can be used in filter expressions. Default is false.",
          "type": "boolean"
        },
        "key": {
          "description": "Gets or sets a value indicating whether the field is the key of the index. Valid only for string fields. Every index must have exactly one key field.",
          "type": "boolean"
        },
        "name": {
          "description": "Gets or sets the name of the field.",
          "externalDocs": {
            "url": "https://msdn.microsoft.com/library/azure/dn857353.aspx"
          },
          "type": "string"
        },
        "retrievable": {
          "description": "Gets or sets a value indicating whether the field can be returned in a search result. Default is true.",
          "type": "boolean"
        },
        "searchable": {
          "description": "Gets or sets a value indicating whether the field is included in full-text searches. Valid only for string or string collection fields. Default is false.",
          "type": "boolean"
        },
        "sortable": {
          "description": "Gets or sets a value indicating whether the field can be used in orderby expressions. Not valid for string collection fields. Default is false.",
          "type": "boolean"
        },
        "type": {
          "description": "Gets or sets the data type of the field.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type"
      ],
      "x-ms-external": true
    },
    "FreshnessScoringFunction": {
      "allOf": [
        {
          "$ref": "#/definitions/ScoringFunction"
        }
      ],
      "description": "Defines a function that boosts scores based on the value of a date-time field.",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn798928.aspx"
      },
      "properties": {
        "freshness": {
          "$ref": "#/definitions/FreshnessScoringParameters",
          "description": "Gets parameter values for the freshness scoring function."
        }
      },
      "required": [
        "freshness"
      ],
      "x-ms-discriminator-value": "freshness",
      "x-ms-external": true
    },
    "FreshnessScoringParameters": {
      "description": "Provides parameter values to a freshness scoring function.",
      "properties": {
        "boostingDuration": {
          "description": "Gets or sets the expiration period after which boosting will stop for a particular document.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "boostingDuration"
      ],
      "x-ms-external": true
    },
    "HighWaterMarkChangeDetectionPolicy": {
      "allOf": [
        {
          "$ref": "#/definitions/DataChangeDetectionPolicy"
        }
      ],
      "description": "Defines a data change detection policy that captures changes based on the value of a high water mark column.",
      "properties": {
        "highWaterMarkColumnName": {
          "description": "Gets or sets the name of the high water mark column.",
          "type": "string"
        }
      },
      "required": [
        "highWaterMarkColumnName"
      ],
      "x-ms-discriminator-value": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy"
    },
    "Index": {
      "description": "Represents an index definition in Azure Search, which describes the fields and search behavior of an index.",
      "properties": {
        "corsOptions": {
          "$ref": "#/definitions/CorsOptions",
          "description": "Gets or sets options to control Cross-Origin Resource Sharing (CORS) for the index."
        },
        "defaultScoringProfile": {
          "description": "Gets or sets the name of the scoring profile to use if none is specified in the query. If this property is not set and no scoring profile is specified in the query, then default scoring (tf-idf) will be used.",
          "type": "string"
        },
        "fields": {
          "description": "Gets or sets the fields of the index.",
          "items": {
            "$ref": "#/definitions/Field"
          },
          "type": "array"
        },
        "name": {
          "description": "Gets or sets the name of the index.",
          "externalDocs": {
            "url": "https://msdn.microsoft.com/library/azure/dn857353.aspx"
          },
          "type": "string"
        },
        "scoringProfiles": {
          "description": "Gets or sets the scoring profiles for the index.",
          "items": {
            "$ref": "#/definitions/ScoringProfile"
          },
          "type": "array"
        },
        "suggesters": {
          "description": "Gets or sets the suggesters for the index.",
          "items": {
            "$ref": "#/definitions/Suggester"
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "fields"
      ]
    },
    "IndexGetStatisticsResult": {
      "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.",
      "properties": {
        "documentCount": {
          "description": "Gets the number of documents in the index.",
          "format": "int64",
          "readOnly": true,
          "type": "integer"
        },
        "storageSize": {
          "description": "Gets the amount of storage in bytes consumed by the index.",
          "format": "int64",
          "readOnly": true,
          "type": "integer"
        }
      },
      "x-ms-external": true
    },
    "IndexListResult": {
      "description": "Response from a List Indexes request. If successful, it includes the full definitions of all indexes.",
      "properties": {
        "value": {
          "description": "Gets the indexes in the Search service.",
          "items": {
            "$ref": "#/definitions/Index"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "x-ms-external": true
    },
    "Indexer": {
      "description": "Represents an Azure Search indexer.",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn946891.aspx"
      },
      "properties": {
        "dataSourceName": {
          "description": "Gets or sets the name of the datasource from which this indexer reads data.",
          "type": "string"
        },
        "description": {
          "description": "Gets or sets the description of the indexer.",
          "type": "string"
        },
        "name": {
          "description": "Gets or sets the name of the indexer.",
          "externalDocs": {
            "url": "https://msdn.microsoft.com/library/azure/dn857353.aspx"
          },
          "type": "string"
        },
        "parameters": {
          "$ref": "#/definitions/IndexingParameters",
          "description": "Gets or sets parameters for indexer execution."
        },
        "schedule": {
          "$ref": "#/definitions/IndexingSchedule",
          "description": "Gets or sets the schedule for this indexer."
        },
        "targetIndexName": {
          "description": "Gets or sets the name of the index to which this indexer writes data.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "dataSourceName",
        "targetIndexName"
      ]
    },
    "IndexerExecutionInfo": {
      "description": "Represents the current status and execution history of an indexer.",
      "properties": {
        "executionHistory": {
          "description": "History of the recent indexer executions, sorted in reverse chronological order.",
          "items": {
            "$ref": "#/definitions/IndexerExecutionResult"
          },
          "readOnly": true,
          "type": "array"
        },
        "lastResult": {
          "$ref": "#/definitions/IndexerExecutionResult",
          "description": "The result of the most recent or an in-progress indexer execution.",
          "readOnly": true
        },
        "status": {
          "$ref": "#/definitions/IndexerStatus",
          "description": "Overall indexer status.",
          "readOnly": true
        }
      },
      "x-ms-external": true
    },
    "IndexerExecutionResult": {
      "description": "Represents result of an individual indexer execution.",
      "properties": {
        "endTime": {
          "description": "Gets the end time of this indexer execution, if the execution has already completed.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "errorMessage": {
          "description": "Gets the error message indicating the top-level error, if any.",
          "readOnly": true,
          "type": "string"
        },
        "errors": {
          "description": "Gets the item-level indexing errors",
          "items": {
            "$ref": "#/definitions/ItemError"
          },
          "readOnly": true,
          "type": "array"
        },
        "finalTrackingState": {
          "description": "Change tracking state with which an indexer execution finished.",
          "readOnly": true,
          "type": "string"
        },
        "initialTrackingState": {
          "description": "Change tracking state with which an indexer execution started.",
          "readOnly": true,
          "type": "string"
        },
        "itemsFailed": {
          "description": "Gets the number of items that failed to be indexed during this indexer execution.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "itemsProcessed": {
          "description": "Gets the number of items that were processed during this indexer execution. This includes both successfully processed items and items where indexing was attempted but failed.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "startTime": {
          "description": "Gets the start time of this indexer execution.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "$ref": "#/definitions/IndexerExecutionStatus",
          "description": "Gets the outcome of this indexer execution.",
          "readOnly": true
        }
      },
      "x-ms-external": true
    },
    "IndexerExecutionStatus": {
      "description": "Represents the status of an individual indexer execution.",
      "enum": [
        "transientFailure",
        "success",
        "inProgress",
        "reset"
      ],
      "type": "string",
      "x-ms-enum": {
        "name": "IndexerExecutionStatus"
      }
    },
    "IndexerListResult": {
      "description": "Response from a List Indexers request. If successful, it includes the full definitions of all indexers.",
      "properties": {
        "value": {
          "description": "Gets the indexers in the Search service.",
          "items": {
            "$ref": "#/definitions/Indexer"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "x-ms-external": true
    },
    "IndexerStatus": {
      "description": "Represents the overall indexer status.",
      "enum": [
        "unknown",
        "error",
        "running"
      ],
      "type": "string",
      "x-ms-enum": {
        "name": "IndexerStatus"
      }
    },
    "IndexingParameters": {
      "description": "Represents parameters for indexer execution.",
      "properties": {
        "base64EncodeKeys": {
          "description": "Gets or sets whether indexer will base64-encode all values that are inserted into key field of the target index. This is needed if keys can contain characters that are invalid in keys (such as dot '.'). Default is false.",
          "type": "boolean"
        },
        "maxFailedItems": {
          "description": "Gets or sets the maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0.",
          "format": "int32",
          "type": "integer"
        },
        "maxFailedItemsPerBatch": {
          "description": "Gets or sets the maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "IndexingSchedule": {
      "description": "Represents a schedule for indexer execution.",
      "properties": {
        "interval": {
          "description": "Gets or sets the interval of time between indexer executions.",
          "format": "duration",
          "type": "string"
        },
        "startTime": {
          "description": "Gets or sets the time when an indexer should start running.",
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "interval"
      ],
      "x-ms-external": true
    },
    "ItemError": {
      "description": "Represents an item- or document-level indexing error.",
      "properties": {
        "errorMessage": {
          "description": "Gets the message describing the error that occurred while attempting to index the item.",
          "readOnly": true,
          "type": "string"
        },
        "key": {
          "description": "Gets the key of the item for which indexing failed.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "MagnitudeScoringFunction": {
      "allOf": [
        {
          "$ref": "#/definitions/ScoringFunction"
        }
      ],
      "description": "Defines a function that boosts scores based on the magnitude of a numeric field.",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn798928.aspx"
      },
      "properties": {
        "magnitude": {
          "$ref": "#/definitions/MagnitudeScoringParameters",
          "description": "Gets parameter values for the magnitude scoring function."
        }
      },
      "required": [
        "magnitude"
      ],
      "x-ms-discriminator-value": "magnitude",
      "x-ms-external": true
    },
    "MagnitudeScoringParameters": {
      "description": "Provides parameter values to a magnitude scoring function.",
      "properties": {
        "boostingRangeEnd": {
          "description": "Gets or sets the field value at which boosting ends.",
          "format": "double",
          "type": "number"
        },
        "boostingRangeStart": {
          "description": "Gets or sets the field value at which boosting starts.",
          "format": "double",
          "type": "number"
        },
        "constantBoostBeyondRange": {
          "description": "Gets or sets a value indicating whether to apply a constant boost for field values beyond the range end value; default is false.",
          "type": "boolean"
        }
      },
      "required": [
        "boostingRangeStart",
        "boostingRangeEnd"
      ],
      "x-ms-external": true
    },
    "ScoringFunction": {
      "description": "Abstract base class for functions that can modify document scores during ranking.",
      "discriminator": "type",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn798928.aspx"
      },
      "properties": {
        "boost": {
          "description": "Gets or sets a multiplier for the raw score. Must be a positive number not equal to 1.0.",
          "format": "double",
          "type": "number"
        },
        "fieldName": {
          "description": "Gets or sets the name of the field used as input to the scoring function.",
          "type": "string"
        },
        "interpolation": {
          "$ref": "#/definitions/ScoringFunctionInterpolation",
          "description": "Gets or sets a value indicating how boosting will be interpolated across document scores; defaults to \"Linear\"."
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "fieldName",
        "boost"
      ],
      "x-ms-external": true
    },
    "ScoringFunctionAggregation": {
      "description": "Defines the aggregation function used to combine the results of all the scoring functions in a scoring profile.",
      "enum": [
        "sum",
        "average",
        "minimum",
        "maximum",
        "firstMatching"
      ],
      "type": "string",
      "x-ms-enum": {
        "name": "ScoringFunctionAggregation"
      }
    },
    "ScoringFunctionInterpolation": {
      "description": "Defines the function used to interpolate score boosting across a range of documents.",
      "enum": [
        "linear",
        "constant",
        "quadratic",
        "logarithmic"
      ],
      "type": "string",
      "x-ms-enum": {
        "name": "ScoringFunctionInterpolation"
      }
    },
    "ScoringProfile": {
      "description": "Defines parameters for an Azure Search index that influence scoring in search queries.",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn798928.aspx"
      },
      "properties": {
        "functionAggregation": {
          "$ref": "#/definitions/ScoringFunctionAggregation",
          "description": "Gets or sets a value indicating how the results of individual scoring functions should be combined. Defaults to \"Sum\". Ignored if there are no scoring functions."
        },
        "functions": {
          "description": "Gets the collection of functions that influence the scoring of documents.",
          "items": {
            "$ref": "#/definitions/ScoringFunction"
          },
          "type": "array"
        },
        "name": {
          "description": "Gets or sets the name of the scoring profile.",
          "externalDocs": {
            "url": "https://msdn.microsoft.com/library/azure/dn857353.aspx"
          },
          "type": "string"
        },
        "text": {
          "$ref": "#/definitions/TextWeights",
          "description": "Gets or sets parameters that boost scoring based on text matches in certain index fields."
        }
      },
      "required": [
        "name"
      ],
      "x-ms-external": true
    },
    "SoftDeleteColumnDeletionDetectionPolicy": {
      "allOf": [
        {
          "$ref": "#/definitions/DataDeletionDetectionPolicy"
        }
      ],
      "description": "Defines a data deletion detection policy that implements a soft-deletion strategy. It determines whether an item should be deleted based on the value of a designated 'soft delete' column.",
      "properties": {
        "softDeleteColumnName": {
          "description": "Gets or sets the name of the column to use for soft-deletion detection.",
          "type": "string"
        },
        "softDeleteMarkerValue": {
          "description": "Gets or sets the marker value that identifies an item as deleted.",
          "type": "string"
        }
      },
      "x-ms-discriminator-value": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy"
    },
    "SqlIntegratedChangeTrackingPolicy": {
      "allOf": [
        {
          "$ref": "#/definitions/DataChangeDetectionPolicy"
        }
      ],
      "description": "Defines a data change detection policy that captures changes using the Integrated Change Tracking feature of Azure SQL Database.",
      "x-ms-discriminator-value": "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy"
    },
    "Suggester": {
      "description": "Defines how the Suggest API should apply to a group of fields in the index.",
      "properties": {
        "name": {
          "description": "Gets or sets the name of the suggester.",
          "type": "string"
        },
        "searchMode": {
          "$ref": "#/definitions/SuggesterSearchMode",
          "description": "Gets or sets a value indicating the capabilities of the suggester."
        },
        "sourceFields": {
          "description": "Gets the list of field names to which the suggester applies. Each field must be searchable.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "searchMode",
        "sourceFields"
      ],
      "x-ms-external": true
    },
    "SuggesterSearchMode": {
      "description": "Describes the type of suggester to use.",
      "enum": [
        "analyzingInfixMatching"
      ],
      "type": "string",
      "x-ms-enum": {
        "name": "SuggesterSearchMode"
      }
    },
    "TagScoringFunction": {
      "allOf": [
        {
          "$ref": "#/definitions/ScoringFunction"
        }
      ],
      "description": "Defines a function that boosts scores of documents with string values matching a given list of tags.",
      "externalDocs": {
        "url": "https://msdn.microsoft.com/library/azure/dn798928.aspx"
      },
      "properties": {
        "tag": {
          "$ref": "#/definitions/TagScoringParameters",
          "description": "Gets parameter values for the tag scoring function."
        }
      },
      "required": [
        "tag"
      ],
      "x-ms-discriminator-value": "tag",
      "x-ms-external": true
    },
    "TagScoringParameters": {
      "description": "Provides parameter values to a tag scoring function.",
      "properties": {
        "tagsParameter": {
          "description": "Gets or sets the name of the parameter passed in search queries to specify the list of tags to compare against the target field.",
          "type": "string"
        }
      },
      "required": [
        "tagsParameter"
      ]
    },
    "TextWeights": {
      "description": "Defines weights on index fields for which matches should boost scoring in search queries.",
      "properties": {
        "weights": {
          "additionalProperties": {
            "format": "double",
            "type": "number"
          },
          "description": "Gets the dictionary of per-field weights to boost document scoring. The keys are field names and the values are the weights for each field.",
          "type": "object"
        }
      },
      "required": [
        "weights"
      ],
      "x-ms-external": true
    }
  }
}