diff --git a/specification/synapse/common/v1/types.json b/specification/synapse/common/v1/types.json index 6aaf16bf83f5..239f5bab4788 100644 --- a/specification/synapse/common/v1/types.json +++ b/specification/synapse/common/v1/types.json @@ -110,6 +110,14 @@ "required": true, "type": "string", "x-ms-parameter-location": "method" + }, + "KeyNameParameter": { + "name": "keyName", + "in": "path", + "description": "The name of a workspace key.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" } } } diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateKey.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateKey.json new file mode 100644 index 000000000000..fd4c825f2822 --- /dev/null +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateOrUpdateKey.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", + "resourceGroupName": "ExampleResourceGroup", + "workspaceName": "ExampleWorkspace", + "keyName": "somekey", + "api-version": "2019-06-01-preview", + "keyProperties": { + "properties": { + "isActiveCMK": true, + "keyVaultUrl": "https://vault.azure.net/keys/somesecret" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/somekey", + "type": "Microsoft.Synapse/workspaces/keys", + "name": "somekey", + "properties": { + "isActiveCMK": true, + "keyVaultUrl": "https://vault.azure.net/keys/somesecret" + } + } + }, + "default": { + "body": { + "error": { + "code": "Error code", + "message": "Error message" + } + } + } + } +} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteKey.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteKey.json new file mode 100644 index 000000000000..a7495bfd40fe --- /dev/null +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/DeleteKey.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", + "resourceGroupName": "ExampleResourceGroup", + "workspaceName": "ExampleWorkspace", + "keyName": "somekey", + "api-version": "2019-06-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/somekey", + "type": "Microsoft.Synapse/workspaces/keys", + "name": "somekey", + "properties": { + "isActiveCMK": true, + "keyVaultUrl": "https://vault.azure.net/keys/key1" + } + } + }, + "204": {} + } +} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetKey.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetKey.json new file mode 100644 index 000000000000..401880d6ed85 --- /dev/null +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetKey.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "ExampleResourceGroup", + "workspaceName": "ExampleWorkspace", + "keyName": "somekey", + "api-version": "2019-06-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/somekey", + "name": "somekey", + "type": "Microsoft.Synapse/workspaces/keys", + "properties": { + "isActiveCMK": true, + "keyVaultUrl": "https://vault.azure.net/keys/key1" + } + } + } + } +} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListKeysInWorkspace.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListKeysInWorkspace.json new file mode 100644 index 000000000000..0d5ec5d9d04f --- /dev/null +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/ListKeysInWorkspace.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", + "resourceGroupName": "ExampleResourceGroup", + "workspaceName": "ExampleWorkspace", + "api-version": "2019-06-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/key1", + "name": "key1", + "type": "Microsoft.Synapse/workspaces/keys", + "properties": { + "keyVaultUrl": "https://vault.azure.net/keys/somesecret1", + "isActiveCMK": false + } + }, + { + "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/keys/key2", + "name": "key2", + "type": "Microsoft.Synapse/workspaces/keys", + "properties": { + "keyVaultUrl": "https://vault.azure.net/keys/somesecret2", + "isActiveCMK": true + } + } + ] + } + } + } +} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/keys.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/keys.json new file mode 100644 index 000000000000..1475148b89c6 --- /dev/null +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/keys.json @@ -0,0 +1,323 @@ +{ + "swagger": "2.0", + "info": { + "version": "2019-06-01-preview", + "title": "SynapseManagementClient", + "description": "Azure Synapse Analytics APIs" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "securityDefinitions": { + "azure_auth": { + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "type": "oauth2", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "description": "Azure Active Directory OAuth2 Flow" + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/keys": { + "get": { + "operationId": "Keys_ListByWorkspace", + "description": "Returns a list of keys in a workspace", + "tags": [ + "Keys" + ], + "deprecated": false, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "./workspace.json#/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/KeyInfoListResult" + }, + "description": "The list of workspace keys." + }, + "default": { + "schema": { + "$ref": "#/definitions/ErrorContract" + }, + "description": "*** Error Responses: ***\n\n * 400 BadRequest - Invalid request to create a Workspace Key.\n\n * 500 InternalServerError- Some error occurred while creating Workspace Key." + } + }, + "consumes": [], + "produces": [ + "application/json" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List keys in workspace": { + "$ref": "./examples/ListKeysInWorkspace.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/keys/{keyName}": { + "get": { + "operationId": "Keys_Get", + "description": "Gets a workspace key", + "tags": [ + "Keys" + ], + "deprecated": false, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "./workspace.json#/parameters/workspaceNameParameter" + }, + { + "$ref": "#/parameters/keyNameParameter" + } + ], + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/Key" + }, + "description": "Workspace Key details" + }, + "default": { + "schema": { + "$ref": "#/definitions/ErrorContract" + }, + "description": "*** Error Responses: ***\n\n * 500 InternalServerError- Some error occurred while trying to get details for Workspace Keys." + } + }, + "consumes": [], + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Get a workspace key": { + "$ref": "./examples/GetKey.json" + } + } + }, + "put": { + "operationId": "Keys_CreateOrUpdate", + "description": "Creates or updates a workspace key", + "tags": [ + "Keys" + ], + "deprecated": false, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "./workspace.json#/parameters/workspaceNameParameter" + }, + { + "$ref": "#/parameters/keyNameParameter" + }, + { + "schema": { + "$ref": "#/definitions/Key" + }, + "in": "body", + "name": "keyProperties", + "required": true, + "description": "Key put request properties" + } + ], + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/Key" + }, + "description": "Workspace Key resource details" + }, + "default": { + "schema": { + "$ref": "#/definitions/ErrorContract" + }, + "description": "*** Error Responses: ***\n\n * 400 BadRequest - Invalid request to create a Workspace Key.\n\n * 500 InternalServerError- Some error occurred while creating Workspace Key." + } + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Create or update a workspace key": { + "$ref": "./examples/CreateOrUpdateKey.json" + } + } + }, + "delete": { + "operationId": "Keys_Delete", + "description": "Deletes a workspace key", + "tags": [ + "Keys" + ], + "deprecated": false, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "./workspace.json#/parameters/workspaceNameParameter" + }, + { + "$ref": "#/parameters/keyNameParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Key" + } + }, + "204": { + "description": "Keys resource not found." + }, + "default": { + "schema": { + "$ref": "#/definitions/ErrorContract" + }, + "description": "*** Error Responses: ***\n\n * 500 InternalServerError- Some error occurred while deleting Workspace Key." + } + }, + "consumes": [], + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Delete a workspace key": { + "$ref": "./examples/DeleteKey.json" + } + } + } + } + }, + "definitions": { + "ErrorDetail": { + "description": "Error details", + "type": "object", + "properties": { + "message": { + "description": "Error message", + "type": "string" + }, + "code": { + "description": "Error code", + "type": "string" + }, + "target": { + "description": "Error target", + "type": "string" + } + } + }, + "ErrorContract": { + "title": "Error details.", + "description": "Contains details when the response code indicates an error.", + "type": "object", + "properties": { + "error": { + "description": "The error details.", + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse" + } + } + }, + "KeyInfoListResult": { + "description": "List of keys", + "type": "object", + "properties": { + "nextLink": { + "description": "Link to the next page of results", + "type": "string" + }, + "value": { + "description": "List of keys", + "type": "array", + "items": { + "$ref": "#/definitions/Key" + } + } + } + }, + "Key": { + "description": "A workspace key", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "description": "Keys resource properties", + "$ref": "#/definitions/KeyProperties", + "x-ms-client-flatten": true + } + } + }, + "KeyProperties": { + "description": "Key properties", + "type": "object", + "properties": { + "isActiveCMK": { + "type": "boolean", + "description": "Used to activate the workspace after a customer managed key is provided." + }, + "keyVaultUrl": { + "type": "string", + "description": "The Key Vault Url of the workspace key." + } + } + } + }, + "parameters": { + "keyNameParameter": { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the workspace key", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/workspace.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/workspace.json index 88b3013bd28e..83e595fe7044 100644 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/workspace.json +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/workspace.json @@ -668,6 +668,50 @@ } } }, + "EncryptionDetails": { + "description": "Details of the encryption associated with the workspace", + "type": "object", + "properties": { + "doubleEncryptionEnabled": { + "description": "Double Encryption enabled", + "type": "boolean", + "readOnly": true + }, + "cmk": { + "description": "Customer Managed Key Details", + "$ref": "#/definitions/CustomerManagedKeyDetails" + } + } + }, + "CustomerManagedKeyDetails": { + "description": "Details of the customer managed key associated with the workspace", + "type": "object", + "properties": { + "status": { + "description": "The customer managed key status on the workspace", + "type": "string", + "readOnly": true + }, + "key": { + "description": "The key object of the workspace", + "$ref": "#/definitions/WorkspaceKeyDetails" + } + } + }, + "WorkspaceKeyDetails": { + "description": "Details of the customer managed key associated with the workspace", + "type": "object", + "properties": { + "name": { + "description": "Workspace Key sub-resource name", + "type": "string" + }, + "keyVaultUrl": { + "description": "Workspace Key sub-resource key vault url", + "type": "string" + } + } + }, "ManagedIdentity": { "description": "The workspace managed identity", "type": "object", @@ -790,6 +834,15 @@ "$ref": "./privateEndpointConnections.json#/definitions/PrivateEndpointConnection" } }, + "encryption": { + "description": "The encryption details of the workspace", + "$ref": "#/definitions/EncryptionDetails" + }, + "workspaceUID": { + "description": "The workspace unique identifier", + "type": "string", + "readOnly": true + }, "extraProperties": { "description": "Workspace level configs and feature flags", "additionalProperties": { diff --git a/specification/synapse/resource-manager/readme.md b/specification/synapse/resource-manager/readme.md index 68da597e5e27..59f3f31e6779 100644 --- a/specification/synapse/resource-manager/readme.md +++ b/specification/synapse/resource-manager/readme.md @@ -46,6 +46,7 @@ input-file: - Microsoft.Synapse/preview/2019-06-01-preview/privateLinkResources.json - Microsoft.Synapse/preview/2019-06-01-preview/privateEndpointConnections.json - Microsoft.Synapse/preview/2019-06-01-preview/privatelinkhub.json +- Microsoft.Synapse/preview/2019-06-01-preview/keys.json ``` ### Tag: package-sqlGen3-2020-04-01-preview