diff --git a/custom-words.txt b/custom-words.txt index 1b02fdc09783..f3d666a05177 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -2258,3 +2258,4 @@ XLSM DOCM multislot Tebibytes +CSPM \ No newline at end of file diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/DeleteSecurityConnector_example.json b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/DeleteSecurityConnector_example.json new file mode 100644 index 000000000000..238efa15c67c --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/DeleteSecurityConnector_example.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "api-version": "2021-07-01-preview", + "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23", + "resourceGroupName": "myRg", + "securityConnectorName": "mySecurityConnectorName" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorResourceGroup_example.json b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorResourceGroup_example.json new file mode 100644 index 000000000000..ed0d542919c9 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorResourceGroup_example.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2021-07-01-preview", + "subscriptionId": "a5caac9c-5c04-49af-b3d0-e204f40345d5", + "resourceGroupName": "exampleResourceGroup", + "securityConnectorName": "exampleSecurityConnectorName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/a5caac9c-5c04-49af-b3d0-e204f40345d5/resourceGroups/exampleResourceGroup/providers/Microsoft.Security/securityConnectors/exampleSecurityConnectorName", + "name": "exampleSecurityConnectorName", + "type": "Microsoft.Security/securityConnectors", + "etag": "etag value", + "location": "Central US", + "tags": {}, + "properties": { + "hierarchyId": "exampleHierarchyId", + "multiCloudName": "AWS", + "offerings": [ + { + "offeringType": "CSPMMonitorAWS", + "description": "Monitor your resources", + "nativeCloudConnection": { + "policies": [ + "s3:ListBucket" + ], + "cloudRoleArn": "arn:aws:iam::00000000:role/ASCMonitor" + } + } + ] + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorsResourceGroup_example.json b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorsResourceGroup_example.json new file mode 100644 index 000000000000..31ce3a2abaf7 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorsResourceGroup_example.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2021-07-01-preview", + "subscriptionId": "a5caac9c-5c04-49af-b3d0-e204f40345d5", + "resourceGroupName": "exampleResourceGroup" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/a5caac9c-5c04-49af-b3d0-e204f40345d5/resourceGroups/exampleResourceGroup/providers/Microsoft.Security/securityConnectors/exampleSecurityConnectorName", + "name": "exampleSecurityConnectorName", + "type": "Microsoft.Security/securityConnectors", + "etag": "etag value", + "location": "Central US", + "tags": {}, + "properties": { + "hierarchyId": "exampleHierarchyId", + "multiCloudName": "AWS", + "offerings": [ + { + "offeringType": "CSPMMonitorAWS", + "description": "Monitor your resources", + "nativeCloudConnection": { + "policies": [ + "s3:ListBucket" + ], + "cloudRoleArn": "arn:aws:iam::00000000:role/ASCMonitor" + } + } + ] + } + } + ] + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorsSubscription_example.json b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorsSubscription_example.json new file mode 100644 index 000000000000..8169752f8bd7 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/GetSecurityConnectorsSubscription_example.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2021-07-01-preview", + "subscriptionId": "a5caac9c-5c04-49af-b3d0-e204f40345d5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/a5caac9c-5c04-49af-b3d0-e204f40345d5/resourceGroups/exampleResourceGroup/providers/Microsoft.Security/securityConnectors/exampleSecurityConnectorName", + "name": "exampleSecurityConnectorName", + "type": "Microsoft.Security/securityConnectors", + "etag": "etag value", + "location": "Central US", + "tags": {}, + "properties": { + "hierarchyId": "exampleHierarchyId", + "multiCloudName": "AWS", + "offerings": [ + { + "offeringType": "CSPMMonitorAWS", + "description": "Monitor your resources", + "nativeCloudConnection": { + "policies": [ + "s3:ListBucket" + ], + "cloudRoleArn": "arn:aws:iam::00000000:role/ASCMonitor" + } + } + ] + } + } + ] + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/PutSecurityConnector_example.json b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/PutSecurityConnector_example.json new file mode 100644 index 000000000000..08e1a73d3276 --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/examples/SecurityConnectors/PutSecurityConnector_example.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "api-version": "2021-07-01-preview", + "subscriptionId": "a5caac9c-5c04-49af-b3d0-e204f40345d5", + "securityConnectorName": "exampleSecurityConnectorName", + "resourceGroupName": "exampleResourceGroup", + "securityConnector": { + "location": "Central US", + "etag": "etag value (must be supplied for update)", + "tags": {}, + "properties": { + "hierarchyId": "exampleHierarchyId", + "multiCloudName": "AWS", + "offerings": [ + { + "offeringType": "CSPMMonitorAWS", + "nativeCloudConnection": { + "cloudRoleArn": "arn:aws:iam::00000000:role/ASCMonitor" + } + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/a5caac9c-5c04-49af-b3d0-e204f40345d5/resourceGroups/exampleResourceGroup/providers/Microsoft.Security/securityConnectors/exampleSecurityConnectorName", + "name": "exampleSecurityConnectorName", + "type": "Microsoft.Security/securityConnectors", + "location": "Central US", + "etag": "new etag value", + "tags": {}, + "properties": { + "hierarchyId": "exampleHierarchyId", + "multiCloudName": "AWS", + "offerings": [ + { + "offeringType": "CSPMMonitorAWS", + "description": "Monitor your resources", + "nativeCloudConnection": { + "policies": [ + "s3:ListBucket" + ], + "cloudRoleArn": "arn:aws:iam::00000000:role/ASCMonitor" + } + } + ] + } + } + }, + "201": { + "body": { + "id": "/subscriptions/a5caac9c-5c04-49af-b3d0-e204f40345d5/resourceGroups/exampleResourceGroup/providers/Microsoft.Security/securityConnectors/exampleSecurityConnectorName", + "name": "exampleSecurityConnectorName", + "type": "Microsoft.Security/securityConnectors", + "location": "Central US", + "etag": "new etag value", + "tags": {}, + "properties": { + "hierarchyId": "exampleHierarchyId", + "multiCloudName": "AWS", + "offerings": [ + { + "offeringType": "CSPMMonitorAWS", + "description": "Monitor your resources", + "nativeCloudConnection": { + "policies": [ + "s3:ListBucket" + ], + "cloudRoleArn": "arn:aws:iam::00000000:role/ASCMonitor" + } + } + ] + } + } + } + } +} diff --git a/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/securityConnectors.json b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/securityConnectors.json new file mode 100644 index 000000000000..262ea56a4f1f --- /dev/null +++ b/specification/security/resource-manager/Microsoft.Security/preview/2021-07-01-preview/securityConnectors.json @@ -0,0 +1,401 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Center", + "description": "API spec for Microsoft.Security (Azure Security Center) resource provider", + "version": "2021-07-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Security/securityConnectors": { + "get": { + "x-ms-examples": { + "List all security connectors of a specified subscription": { + "$ref": "./examples/SecurityConnectors/GetSecurityConnectorsSubscription_example.json" + } + }, + "tags": [ + "SecurityConnectors" + ], + "description": "Lists all the security connectors in the specified subscription. Use the 'nextLink' property in the response to get the next page of security connectors for the specified subscription.", + "operationId": "SecurityConnectors_List", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityConnectorsList" + } + }, + "default": { + "description": "Error response that describes why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors": { + "get": { + "x-ms-examples": { + "List all security connectors of a specified resource group": { + "$ref": "./examples/SecurityConnectors/GetSecurityConnectorsResourceGroup_example.json" + } + }, + "tags": [ + "SecurityConnectors" + ], + "description": "Lists all the security connectors in the specified resource group. Use the 'nextLink' property in the response to get the next page of security connectors for the specified resource group.", + "operationId": "SecurityConnectors_ListByResourceGroup", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityConnectorsList" + } + }, + "default": { + "description": "Error response that describes why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName}": { + "get": { + "x-ms-examples": { + "Retrieve a security connector": { + "$ref": "./examples/SecurityConnectors/GetSecurityConnectorResourceGroup_example.json" + } + }, + "tags": [ + "SecurityConnectors" + ], + "description": "Retrieves details of a specific security connector", + "operationId": "SecurityConnectors_Get", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/securityConnectorName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityConnector" + } + }, + "default": { + "description": "Error response that describes why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create or update a security connector": { + "$ref": "./examples/SecurityConnectors/PutSecurityConnector_example.json" + } + }, + "tags": [ + "SecurityConnectors" + ], + "description": "Creates or updates a security connector. If a security connector is already created and a subsequent request is issued for the same security connector id, then it will be updated.", + "operationId": "SecurityConnectors_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/securityConnectorName" + }, + { + "$ref": "#/parameters/securityConnectorInBody" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityConnector" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SecurityConnector" + } + }, + "default": { + "description": "Error response that describes why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a security connector": { + "$ref": "./examples/SecurityConnectors/DeleteSecurityConnector_example.json" + } + }, + "tags": [ + "SecurityConnectors" + ], + "operationId": "SecurityConnectors_Delete", + "description": "Deletes a security connector.", + "parameters": [ + { + "$ref": "../../../common/v1/types.json#/parameters/ApiVersion" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/SubscriptionId" + }, + { + "$ref": "../../../common/v1/types.json#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/securityConnectorName" + } + ], + "responses": { + "200": { + "description": "The resource was deleted successfully" + }, + "204": { + "description": "NoContent" + }, + "default": { + "description": "Error response that describes why the operation failed.", + "schema": { + "$ref": "../../../common/v1/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "SecurityConnectorsList": { + "type": "object", + "description": "List of security connectors response.", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "array", + "description": "The list of security connectors under the given scope.", + "items": { + "$ref": "#/definitions/SecurityConnector" + } + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "The URI to fetch the next page." + } + } + }, + "SecurityConnector": { + "type": "object", + "description": "The security connector resource.", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "description": "Security connector data", + "$ref": "#/definitions/SecurityConnectorProperties" + } + }, + "allOf": [ + { + "$ref": "../../../common/v1/types.json#/definitions/TrackedResource" + } + ] + }, + "SecurityConnectorProperties": { + "type": "object", + "description": "A set of properties that defines the security connector configuration.", + "properties": { + "hierarchyId": { + "type": "string", + "description": "The multi cloud resource identifier (account id in case of AWS connector)." + }, + "multiCloudName": { + "type": "string", + "description": "The multi cloud resource's cloud name.", + "enum": [ + "Azure", + "AWS", + "GCP" + ], + "x-ms-enum": { + "name": "MultiCloudName", + "modelAsString": true + } + }, + "offerings": { + "type": "array", + "description": "A collection of offerings for the security connector.", + "items": { + "$ref": "#/definitions/MultiCloudOffering" + } + } + } + }, + "MultiCloudOffering": { + "type": "object", + "description": "The security offering details", + "discriminator": "offeringType", + "required": [ + "offeringType" + ], + "properties": { + "offeringType": { + "type": "string", + "description": "The type of the security offering.", + "enum": [ + "CSPMMonitorAWS" + ], + "x-ms-enum": { + "name": "OfferingType", + "modelAsString": true, + "values": [ + { + "value": "CSPMMonitorAWS" + } + ] + } + }, + "description": { + "type": "string", + "description": "The offering description.", + "readOnly": true + } + } + }, + "CSPMMonitorAWSOffering": { + "type": "object", + "description": "The CSPM monitoring for AWS offering configurations", + "x-ms-discriminator-value": "CSPMMonitorAWS", + "allOf": [ + { + "$ref": "#/definitions/MultiCloudOffering" + } + ], + "properties": { + "nativeCloudConnection": { + "type": "object", + "description": "The native cloud connection configuration", + "properties": { + "cloudRoleArn": { + "type": "string", + "description": "The cloud role ARN in AWS for this feature" + }, + "policies": { + "type": "array", + "description": "The list of the required policies of the multi cloud roles for the offering. [READ ONLY]", + "items": { + "type": "string", + "description": "multi cloud role" + }, + "readOnly": true + } + } + } + } + } + }, + "parameters": { + "securityConnectorName": { + "name": "securityConnectorName", + "in": "path", + "required": true, + "type": "string", + "description": "The security connector name.", + "x-ms-parameter-location": "method" + }, + "securityConnectorInBody": { + "name": "securityConnector", + "in": "body", + "required": true, + "description": "The security connector resource", + "schema": { + "$ref": "#/definitions/SecurityConnector" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/security/resource-manager/readme.md b/specification/security/resource-manager/readme.md index c5476d89437c..ea7dd11bbee4 100644 --- a/specification/security/resource-manager/readme.md +++ b/specification/security/resource-manager/readme.md @@ -85,13 +85,13 @@ tag: package-composite-v3 The following packages may be composed from multiple api-versions. - ### Tag: package-composite-v1 These settings apply only when `--tag=package-composite-v1` is specified on the command line. ``` yaml $(tag) == 'package-composite-v1' input-file: +- Microsoft.Security/preview/2021-07-01-preview/securityConnectors.json - Microsoft.Security/preview/2021-05-01-preview/softwareInventories.json - Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json - Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json @@ -135,6 +135,7 @@ These settings apply only when `--tag=package-composite-v2` is specified on the ``` yaml $(tag) == 'package-composite-v2' input-file: +- Microsoft.Security/preview/2021-07-01-preview/securityConnectors.json - Microsoft.Security/preview/2021-05-01-preview/softwareInventories.json - Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanOperations.json - Microsoft.Security/preview/2020-07-01-preview/sqlVulnerabilityAssessmentsScanResultsOperations.json @@ -180,6 +181,7 @@ These settings apply only when `--tag=package-composite-v3` is specified on the ``` yaml $(tag) == 'package-composite-v3' input-file: +- Microsoft.Security/preview/2021-07-01-preview/securityConnectors.json - Microsoft.Security/stable/2017-08-01/complianceResults.json - Microsoft.Security/stable/2018-06-01/pricings.json - Microsoft.Security/stable/2019-01-01/advancedThreatProtectionSettings.json @@ -468,6 +470,18 @@ override-info: title: SecurityCenter ``` +### Tag: package-2021-07-preview-only + +These settings apply only when `--tag=package-2021-07-preview-only` is specified on the command line. This tag is used for Ruby SDK. + +``` yaml $(tag) == 'package-2021-07-preview-only' +input-file: + - Microsoft.Security/preview/2021-07-01-preview/securityConnectors.json +# Needed when there is more than one input file +override-info: + title: SecurityCenter +``` + --- # Code Generation @@ -515,4 +529,4 @@ See configuration in [readme.ruby.md](./readme.ruby.md) ## Java -See configuration in [readme.java.md](./readme.java.md) +See configuration in [readme.java.md](./readme.java.md) \ No newline at end of file