From a47bc920ae2d32cb7c37ba9b60683540fd127ccb Mon Sep 17 00:00:00 2001 From: Uriel Cohen Date: Mon, 16 May 2022 06:38:52 -0700 Subject: [PATCH] Microsoft.Sql - adding Managed Instance AdvancedThreatProtection APIs --- ...abaseAdvancedThreatProtectionSettings.json | 292 ++++++++++++++++++ ...tanceAdvancedThreatProtectionSettings.json | 273 ++++++++++++++++ ...ncedThreatProtectionSettingsCreateMax.json | 55 ++++ ...ncedThreatProtectionSettingsCreateMin.json | 55 ++++ ...seAdvancedThreatProtectionSettingsGet.json | 31 ++ ...hreatProtectionSettingsListByDatabase.json | 34 ++ ...ncedThreatProtectionSettingsCreateMax.json | 36 +++ ...ncedThreatProtectionSettingsCreateMin.json | 36 +++ ...ceAdvancedThreatProtectionSettingsGet.json | 30 ++ ...hreatProtectionSettingsListByInstance.json | 33 ++ specification/sql/resource-manager/readme.md | 2 + 11 files changed, 877 insertions(+) create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseAdvancedThreatProtectionSettings.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceAdvancedThreatProtectionSettings.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMax.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMin.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsGet.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsListByDatabase.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMax.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMin.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsGet.json create mode 100644 specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsListByInstance.json diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseAdvancedThreatProtectionSettings.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseAdvancedThreatProtectionSettings.json new file mode 100644 index 000000000000..9ab7399ad9bb --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseAdvancedThreatProtectionSettings.json @@ -0,0 +1,292 @@ +{ + "swagger": "2.0", + "info": { + "version": "2022-02-01-preview", + "title": "SqlManagementClient", + "description": "The Azure SQL Database management API provides a RESTful set of web APIs that interact with Azure SQL Database services to manage your databases. The API enables users to create, retrieve, update, and delete databases, servers, and other entities." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/databases/{databaseName}/advancedThreatProtectionSettings": { + "get": { + "tags": [ + "ManagedDatabaseAdvancedThreatProtectionSettings" + ], + "description": "Gets a list of managed database's Advanced Threat Protection states.", + "operationId": "ManagedDatabaseAdvancedThreatProtectionSettings_ListByDatabase", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ManagedInstanceNameParameter" + }, + { + "$ref": "#/parameters/DatabaseNameParameter" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the managed database Advanced Threat Protection states.", + "schema": { + "$ref": "#/definitions/ManagedDatabaseAdvancedThreatProtectionListResult" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 UpdateNotAllowedOnPausedDatabase - User attempted to perform an update on a paused database.\n\n * 400 AdvancedThreatProtectionInsufficientDiskSpace - Insufficient disk space to save the Advanced Threat Protection settings metadata in the database\n\n * 400 InvalidDatabaseAdvancedThreatProtectionCreateRequest - The create database Advanced Threat Protection request does not exist or has no properties object\n\n * 400 AdvancedThreatProtectionInvalidUserSuppliedParameter - An invalid parameter value was provided by the client\n\n * 400 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 400 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 409 DatabaseAdvancedThreatProtectionInProgress - Setting the database Advanced Threat Protection is already in progress\n\n * 409 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 500 GetDatabaseAdvancedThreatProtectionFailed - Failed to get Advanced Threat Protection settings" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Get a list of the managed database's Advanced Threat Protection settings.": { + "$ref": "./examples/ManagedDatabaseAdvancedThreatProtectionSettingsListByDatabase.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/databases/{databaseName}/advancedThreatProtectionSettings/{advancedThreatProtectionName}": { + "get": { + "tags": [ + "ManagedDatabaseAdvancedThreatProtectionSettings" + ], + "description": "Gets a managed database's Advanced Threat Protection state.", + "operationId": "ManagedDatabaseAdvancedThreatProtectionSettings_Get", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ManagedInstanceNameParameter" + }, + { + "$ref": "#/parameters/DatabaseNameParameter" + }, + { + "name": "advancedThreatProtectionName", + "in": "path", + "description": "The name of the Advanced Threat Protection state.", + "required": true, + "type": "string", + "enum": [ + "Default" + ], + "x-ms-enum": { + "name": "AdvancedThreatProtectionName", + "modelAsString": true + } + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the managed database's Advanced Threat Protection state.", + "schema": { + "$ref": "#/definitions/ManagedDatabaseAdvancedThreatProtection" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 UpdateNotAllowedOnPausedDatabase - User attempted to perform an update on a paused database.\n\n * 400 AdvancedThreatProtectionInsufficientDiskSpace - Insufficient disk space to save the Advanced Threat Protection settings metadata in the database\n\n * 400 InvalidDatabaseAdvancedThreatProtectionCreateRequest - The create database Advanced Threat Protection request does not exist or has no properties object\n\n * 400 AdvancedThreatProtectionInvalidUserSuppliedParameter - An invalid parameter value was provided by the client\n\n * 400 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 400 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 409 DatabaseAdvancedThreatProtectionInProgress - Setting the database Advanced Threat Protection is already in progress\n\n * 409 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 500 GetDatabaseAdvancedThreatProtectionFailed - Failed to get Advanced Threat Protection settings" + } + }, + "x-ms-examples": { + "Get a managed database's Advanced Threat Protection settings.": { + "$ref": "./examples/ManagedDatabaseAdvancedThreatProtectionSettingsGet.json" + } + } + }, + "put": { + "tags": [ + "ManagedDatabaseAdvancedThreatProtectionSettings" + ], + "description": "Creates or updates a managed database's Advanced Threat Protection state.", + "operationId": "ManagedDatabaseAdvancedThreatProtectionSettings_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ManagedInstanceNameParameter" + }, + { + "$ref": "#/parameters/DatabaseNameParameter" + }, + { + "name": "advancedThreatProtectionName", + "in": "path", + "description": "The name of the Advanced Threat Protection state.", + "required": true, + "type": "string", + "enum": [ + "Default" + ], + "x-ms-enum": { + "name": "AdvancedThreatProtectionName", + "modelAsString": true + } + }, + { + "name": "parameters", + "in": "body", + "description": "The managed database Advanced Threat Protection state.", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedDatabaseAdvancedThreatProtection" + } + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully set the managed database Advanced Threat Protection state.", + "schema": { + "$ref": "#/definitions/ManagedDatabaseAdvancedThreatProtection" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 UpdateNotAllowedOnPausedDatabase - User attempted to perform an update on a paused database.\n\n * 400 AdvancedThreatProtectionInsufficientDiskSpace - Insufficient disk space to save the Advanced Threat Protection settings metadata in the database\n\n * 400 InvalidDatabaseAdvancedThreatProtectionCreateRequest - The create database Advanced Threat Protection request does not exist or has no properties object\n\n * 400 AdvancedThreatProtectionInvalidUserSuppliedParameter - An invalid parameter value was provided by the client\n\n * 400 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 400 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 DatabaseDoesNotExist - User has specified a database name that does not exist on this server instance.\n\n * 404 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 409 DatabaseAdvancedThreatProtectionInProgress - Setting the database Advanced Threat Protection is already in progress\n\n * 409 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertDatabaseAdvancedThreatProtectionFailed - An error has occurred while saving Advanced Threat Protection settings, please try again later\n\n * 500 GetDatabaseAdvancedThreatProtectionFailed - Failed to get Advanced Threat Protection settings" + }, + "201": { + "description": "Successfully created the managed database Advanced Threat Protection state.", + "schema": { + "$ref": "#/definitions/ManagedDatabaseAdvancedThreatProtection" + } + } + }, + "x-ms-examples": { + "Update a managed database's Advanced Threat Protection settings with minimal parameters": { + "$ref": "./examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMin.json" + }, + "Update a managed database's Advanced Threat Protection settings with all parameters": { + "$ref": "./examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMax.json" + } + } + } + } + }, + "definitions": { + "AdvancedThreatProtectionProperties": { + "description": "Properties of an Advanced Threat Protection state.", + "required": [ + "state" + ], + "type": "object", + "properties": { + "state": { + "description": "Specifies the state of the Advanced Threat Protection, whether it is enabled or disabled or a state has not been applied yet on the specific database or server.", + "enum": [ + "New", + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AdvancedThreatProtectionState", + "modelAsString": false + } + }, + "creationTime": { + "format": "date-time", + "description": "Specifies the UTC creation time of the policy.", + "type": "string", + "readOnly": true + } + } + }, + "ManagedDatabaseAdvancedThreatProtection": { + "description": "A managed database Advanced Threat Protection.", + "type": "object", + "allOf": [ + { + "$ref": "../../../common/v1/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "systemData": { + "$ref": "../../../common/v1/types.json#/definitions/systemData", + "description": "SystemData of AdvancedThreatProtectionResource.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/AdvancedThreatProtectionProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + } + }, + "ManagedDatabaseAdvancedThreatProtectionListResult": { + "description": "A list of the managed database's Advanced Threat Protection settings.", + "type": "object", + "properties": { + "value": { + "description": "Array of results.", + "type": "array", + "items": { + "$ref": "#/definitions/ManagedDatabaseAdvancedThreatProtection" + }, + "readOnly": true + }, + "nextLink": { + "description": "Link to retrieve next page of results.", + "type": "string", + "readOnly": true + } + } + } + }, + "parameters": { + "DatabaseNameParameter": { + "name": "databaseName", + "in": "path", + "description": "The name of the database.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ManagedInstanceNameParameter": { + "name": "managedInstanceName", + "in": "path", + "description": "The name of the managed instance.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceAdvancedThreatProtectionSettings.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceAdvancedThreatProtectionSettings.json new file mode 100644 index 000000000000..dd5fad6ad700 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceAdvancedThreatProtectionSettings.json @@ -0,0 +1,273 @@ +{ + "swagger": "2.0", + "info": { + "version": "2022-02-01-preview", + "title": "SqlManagementClient", + "description": "The Azure SQL Database management API provides a RESTful set of web APIs that interact with Azure SQL Database services to manage your databases. The API enables users to create, retrieve, update, and delete databases, servers, and other entities." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/advancedThreatProtectionSettings": { + "get": { + "tags": [ + "ManagedInstanceAdvancedThreatProtectionSettings" + ], + "description": "Get the managed instance's Advanced Threat Protection settings.", + "operationId": "ManagedInstanceAdvancedThreatProtectionSettings_ListByInstance", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ManagedInstanceNameParameter" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the managed instance Advanced Threat Protection states.", + "schema": { + "$ref": "#/definitions/ManagedInstanceAdvancedThreatProtectionListResult" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 UpdateNotAllowedOnServerContainingPausedDWDatabase - Setting the server Advanced Threat Protection settings is not allowed on a server with a paused Data Warehouse database\n\n * 400 AdvancedThreatProtectionInsufficientDiskSpace - Insufficient disk space to save the Advanced Threat Protection settings metadata in the database\n\n * 400 InvalidServerAdvancedThreatProtectionCreateRequest - The create server Advanced Threat Protection request does not exist or has no properties object\n\n * 400 AdvancedThreatProtectionInvalidUserSuppliedParameter - An invalid parameter value was provided by the client\n\n * 400 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 400 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 409 ServerAdvancedThreatProtectionInProgress - Setting the server Advanced Threat Protection settings is already in progress\n\n * 409 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 500 GetServerAdvancedThreatProtectionFailed - Failed to get the Advanced Threat Protection settings" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List the managed instance's Advanced Threat Protection settings.": { + "$ref": "./examples/ManagedInstanceAdvancedThreatProtectionSettingsListByInstance.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/advancedThreatProtectionSettings/{advancedThreatProtectionName}": { + "get": { + "tags": [ + "ManagedInstanceAdvancedThreatProtectionSettings" + ], + "description": "Get a managed instance's Advanced Threat Protection state.", + "operationId": "ManagedInstanceAdvancedThreatProtectionSettings_Get", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ManagedInstanceNameParameter" + }, + { + "name": "advancedThreatProtectionName", + "in": "path", + "description": "The name of the Advanced Threat Protection state.", + "required": true, + "type": "string", + "enum": [ + "Default" + ], + "x-ms-enum": { + "name": "AdvancedThreatProtectionName", + "modelAsString": true + } + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the managed instance Advanced Threat Protection state.", + "schema": { + "$ref": "#/definitions/ManagedInstanceAdvancedThreatProtection" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 UpdateNotAllowedOnServerContainingPausedDWDatabase - Setting the server Advanced Threat Protection settings is not allowed on a server with a paused Data Warehouse database\n\n * 400 AdvancedThreatProtectionInsufficientDiskSpace - Insufficient disk space to save the Advanced Threat Protection settings metadata in the database\n\n * 400 InvalidServerAdvancedThreatProtectionCreateRequest - The create server Advanced Threat Protection request does not exist or has no properties object\n\n * 400 AdvancedThreatProtectionInvalidUserSuppliedParameter - An invalid parameter value was provided by the client\n\n * 400 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 400 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 409 ServerAdvancedThreatProtectionInProgress - Setting the server Advanced Threat Protection settings is already in progress\n\n * 409 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 500 GetServerAdvancedThreatProtectionFailed - Failed to get the Advanced Threat Protection settings" + } + }, + "x-ms-examples": { + "Get a managed instance's Advanced Threat Protection settings": { + "$ref": "./examples/ManagedInstanceAdvancedThreatProtectionSettingsGet.json" + } + } + }, + "put": { + "tags": [ + "ManagedInstanceAdvancedThreatProtectionSettings" + ], + "description": "Creates or updates Advanced Threat Protection settings.", + "operationId": "ManagedInstanceAdvancedThreatProtectionSettings_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/ManagedInstanceNameParameter" + }, + { + "name": "advancedThreatProtectionName", + "in": "path", + "description": "The name of the Advanced Threat Protection state.", + "required": true, + "type": "string", + "enum": [ + "Default" + ], + "x-ms-enum": { + "name": "AdvancedThreatProtectionName", + "modelAsString": true + } + }, + { + "name": "parameters", + "in": "body", + "description": "The managed instance Advanced Threat Protection state.", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedInstanceAdvancedThreatProtection" + } + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully created or updated the Advanced Threat Protection state.", + "schema": { + "$ref": "#/definitions/ManagedInstanceAdvancedThreatProtection" + } + }, + "default": { + "description": "*** Error Responses: ***\n\n * 400 UpdateNotAllowedOnServerContainingPausedDWDatabase - Setting the server Advanced Threat Protection settings is not allowed on a server with a paused Data Warehouse database\n\n * 400 AdvancedThreatProtectionInsufficientDiskSpace - Insufficient disk space to save the Advanced Threat Protection settings metadata in the database\n\n * 400 InvalidServerAdvancedThreatProtectionCreateRequest - The create server Advanced Threat Protection request does not exist or has no properties object\n\n * 400 AdvancedThreatProtectionInvalidUserSuppliedParameter - An invalid parameter value was provided by the client\n\n * 400 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 400 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 409 ServerAdvancedThreatProtectionInProgress - Setting the server Advanced Threat Protection settings is already in progress\n\n * 409 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 500 DatabaseIsUnavailable - Loading failed. Please try again later.\n\n * 500 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later\n\n * 500 UpsertServerAdvancedThreatProtectionFailed - An error has occurred while saving the Advanced Threat Protection settings, please try again later" + }, + "202": { + "description": "Created request to set the Advanced Threat Protection state." + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Update a managed instance's Advanced Threat Protection settings with minimal parameters.": { + "$ref": "./examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMin.json" + }, + "Update a managed instance's Advanced Threat Protection settings with all parameters.": { + "$ref": "./examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMax.json" + } + } + } + } + }, + "definitions": { + "AdvancedThreatProtectionProperties": { + "description": "Properties of an Advanced Threat Protection state.", + "required": [ + "state" + ], + "type": "object", + "properties": { + "state": { + "description": "Specifies the state of the Advanced Threat Protection, whether it is enabled or disabled or a state has not been applied yet on the specific database or server.", + "enum": [ + "New", + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AdvancedThreatProtectionState", + "modelAsString": false + } + }, + "creationTime": { + "format": "date-time", + "description": "Specifies the UTC creation time of the policy.", + "type": "string", + "readOnly": true + } + } + }, + "ManagedInstanceAdvancedThreatProtection": { + "description": "A managed instance Advanced Threat Protection.", + "type": "object", + "allOf": [ + { + "$ref": "../../../common/v1/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "systemData": { + "$ref": "../../../common/v1/types.json#/definitions/systemData", + "description": "SystemData of AdvancedThreatProtectionResource.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/AdvancedThreatProtectionProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + } + }, + "ManagedInstanceAdvancedThreatProtectionListResult": { + "description": "A list of the managed instance's Advanced Threat Protection settings.", + "type": "object", + "properties": { + "value": { + "description": "Array of results.", + "type": "array", + "items": { + "$ref": "#/definitions/ManagedInstanceAdvancedThreatProtection" + }, + "readOnly": true + }, + "nextLink": { + "description": "Link to retrieve next page of results.", + "type": "string", + "readOnly": true + } + } + } + }, + "parameters": { + "ManagedInstanceNameParameter": { + "name": "managedInstanceName", + "in": "path", + "description": "The name of the managed instance.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMax.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMax.json new file mode 100644 index 000000000000..e76e261107d8 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMax.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "threatprotection-4799", + "managedInstanceName": "threatprotection-6440", + "databaseName": "testdb", + "advancedThreatProtectionName": "Default", + "api-version": "2022-02-01-preview", + "parameters": { + "properties": { + "state": "Enabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings/Default", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/databases/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Enabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings/Default", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/databases/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Enabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + } + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMin.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMin.json new file mode 100644 index 000000000000..a94f2bcdf211 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsCreateMin.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "threatprotection-4799", + "managedInstanceName": "threatprotection-6440", + "databaseName": "testdb", + "advancedThreatProtectionName": "Default", + "api-version": "2022-02-01-preview", + "parameters": { + "properties": { + "state": "Disabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings/Default", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/databases/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Disabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings/Default", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/databases/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Disabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + } + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsGet.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsGet.json new file mode 100644 index 000000000000..af4a691f5d4b --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsGet.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "threatprotection-6852", + "managedInstanceName": "threatprotection-2080", + "databaseName": "testdb", + "advancedThreatProtectionName": "Default", + "api-version": "2022-02-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings/Default", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/databases/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Enabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + } + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsListByDatabase.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsListByDatabase.json new file mode 100644 index 000000000000..52e4cc1f2274 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedDatabaseAdvancedThreatProtectionSettingsListByDatabase.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "threatprotection-6852", + "managedInstanceName": "threatprotection-2080", + "databaseName": "testdb", + "api-version": "2022-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-6852/providers/Microsoft.Sql/managedInstances/threatprotection-2080/databases/testdb/advancedThreatProtectionSettings", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/databases/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Enabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + ] + } + } + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMax.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMax.json new file mode 100644 index 000000000000..f7d3af8b3910 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMax.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "threatprotection-4799", + "managedInstanceName": "threatprotection-6440", + "advancedThreatProtectionName": "Default", + "api-version": "2022-02-01-preview", + "parameters": { + "properties": { + "state": "Enabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings/Default", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Enabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + }, + "202": {} + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMin.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMin.json new file mode 100644 index 000000000000..58395460bc9e --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsCreateMin.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "threatprotection-4799", + "managedInstanceName": "threatprotection-6440", + "advancedThreatProtectionName": "Default", + "api-version": "2022-02-01-preview", + "parameters": { + "properties": { + "state": "Disabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings/Default", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Disabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + }, + "202": {} + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsGet.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsGet.json new file mode 100644 index 000000000000..2bd826de3946 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsGet.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "threatprotection-4799", + "managedInstanceName": "threatprotection-6440", + "advancedThreatProtectionName": "Default", + "api-version": "2022-02-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings/Default", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Disabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + } + } +} diff --git a/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsListByInstance.json b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsListByInstance.json new file mode 100644 index 000000000000..a5aa6800d895 --- /dev/null +++ b/specification/sql/resource-manager/Microsoft.Sql/preview/2022-02-01-preview/examples/ManagedInstanceAdvancedThreatProtectionSettingsListByInstance.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "threatprotection-4799", + "managedInstanceName": "threatprotection-6440", + "api-version": "2022-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/threatprotection-4799/providers/Microsoft.Sql/managedInstances/threatprotection-6440/advancedThreatProtectionSettings", + "name": "Default", + "type": "Microsoft.Sql/managedInstances/advancedThreatProtectionSettings", + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2022-04-03T04:41:33.937Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2022-04-03T04:41:33.937Z" + }, + "properties": { + "state": "Disabled", + "creationTime": "2022-04-03T04:41:33.937Z" + } + } + ] + } + } + } +} diff --git a/specification/sql/resource-manager/readme.md b/specification/sql/resource-manager/readme.md index 1b825cacb0a4..e63650eabc67 100644 --- a/specification/sql/resource-manager/readme.md +++ b/specification/sql/resource-manager/readme.md @@ -84,6 +84,7 @@ input-file: - Microsoft.Sql/preview/2022-02-01-preview/MaintenanceWindowOptions.json - Microsoft.Sql/preview/2022-02-01-preview/MaintenanceWindows.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedBackupShortTermRetentionPolicies.json + - Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseAdvancedThreatProtectionSettings.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseColumns.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseQueries.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseRestoreDetails.json @@ -98,6 +99,7 @@ input-file: - Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabaseVulnerabilityAssessments.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedDatabases.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceAdministrators.json + - Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceAdvancedThreatProtectionSettings.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceAzureADOnlyAuthentications.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceEncryptionProtectors.json - Microsoft.Sql/preview/2022-02-01-preview/ManagedInstanceKeys.json