swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: Azure Blueprint Client.
  title: BlueprintClient
  version: 2017-11-11-preview
  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/blueprint/resource-manager/Microsoft.Blueprint/preview/2017-11-11-preview/blueprintDefinition.json
      version: "2.0"
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: blueprint-blueprintDefinition
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  ApiVersionParameter:
    description: Client Api Version.
    in: query
    name: api-version
    required: true
    type: string
    x-ms-parameter-location: client
  ArtifactNameParameter:
    description: name of the artifact.
    in: path
    name: artifactName
    required: true
    type: string
    x-ms-parameter-location: method
  BlueprintNameParameter:
    description: name of the blueprint.
    in: path
    name: blueprintName
    required: true
    type: string
    x-ms-parameter-location: method
  ManagementGroupNameParameter:
    description: ManagementGroup where blueprint stores.
    in: path
    name: managementGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  PublishedBlueprintVersionIdParameter:
    description: version of the published blueprint.
    in: path
    name: versionId
    required: true
    type: string
    x-ms-parameter-location: method
  SubscriptionIdParameter:
    description: azure subscriptionId, which we assign the blueprint to.
    in: path
    name: subscriptionId
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  /providers/Microsoft.Blueprint/operations:
    get:
      description: List all of the available operations the Blueprint resource provider supports.
      operationId: Operations_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK response definition.
          schema:
            $ref: "#/definitions/ResourceProviderOperationList"
      tags:
        - Operations
      x-ms-examples:
        OperationsList:
          parameters:
            api-version: 2017-11-11-preview
          responses:
            "200":
              body:
                value:
                  - display:
                      description: Read any Blueprints
                      operation: Read Blueprints
                      provider: Microsoft Blueprint
                      resource: Blueprint
                    name: Microsoft.Blueprint/blueprints/read
  "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints":
    get:
      description: List Blueprint definitions within a Management Group.
      operationId: Blueprints_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
      responses:
        "200":
          description: OK -- retrieved Blueprints in this ManagementGroup.
          schema:
            $ref: "#/definitions/BlueprintList"
      tags:
        - Blueprint
      x-ms-examples:
        Blueprint:
          parameters:
            api-version: 2017-11-11-preview
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                value:
                  - id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint
                    name: simpleBlueprint
                    properties:
                      description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                      parameters:
                        costCenter:
                          metadata:
                            displayName: force cost center tag for all resources under given subscription.
                          type: string
                        owners:
                          metadata:
                            displayName: assign owners to subscription along with blueprint assignment.
                          type: array
                        storageAccountType:
                          metadata:
                            displayName: storage account type.
                          type: string
                      resourceGroups:
                        storageRG:
                          metadata:
                            description: Contains storageAccounts that collect all shoebox logs.
                            displayName: storage resource group
                      status: null
                      targetScope: subscription
                    type: Microsoft.Blueprint/blueprints
      x-ms-pageable:
        nextLinkName: nextLink
  "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}":
    delete:
      description: Delete a blueprint definition.
      operationId: Blueprints_Delete
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
      responses:
        "200":
          description: OK -- blueprint definition deleted
          schema:
            $ref: "#/definitions/Blueprint"
        "204":
          description: no content
      tags:
        - Blueprint
      x-ms-examples:
        Blueprint_Delete:
          parameters:
            api-version: 2017-11-11-preview
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint
                name: simpleBlueprint
                properties:
                  description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                  parameters:
                    costCenter:
                      metadata:
                        displayName: force cost center tag for all resources under given subscription.
                      type: string
                    owners:
                      metadata:
                        displayName: assign owners to subscription along with blueprint assignment.
                      type: array
                    storageAccountType:
                      metadata:
                        displayName: storage account type.
                      type: string
                  resourceGroups:
                    storageRG:
                      metadata:
                        description: Contains storageAccounts that collect all shoebox logs.
                        displayName: storage resource group
                  status: null
                  targetScope: subscription
                type: Microsoft.Blueprint/blueprints
            "204": {}
    get:
      description: Get a blueprint definition.
      operationId: Blueprints_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
      responses:
        "200":
          description: OK -- blueprint definition retrieved.
          schema:
            $ref: "#/definitions/Blueprint"
      tags:
        - Blueprint
      x-ms-examples:
        Blueprint:
          parameters:
            api-version: 2017-11-11-preview
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint
                name: simpleBlueprint
                properties:
                  description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                  parameters:
                    costCenter:
                      metadata:
                        displayName: force cost center tag for all resources under given subscription.
                      type: string
                    owners:
                      metadata:
                        displayName: assign owners to subscription along with blueprint assignment.
                      type: array
                    storageAccountType:
                      metadata:
                        displayName: storage account type.
                      type: string
                  resourceGroups:
                    storageRG:
                      metadata:
                        description: Contains storageAccounts that collect all shoebox logs.
                        displayName: storage resource group
                  status: null
                  targetScope: subscription
                type: Microsoft.Blueprint/blueprints
    put:
      description: Create or update Blueprint definition.
      operationId: Blueprints_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - description: Blueprint definition.
          in: body
          name: blueprint
          required: true
          schema:
            $ref: "#/definitions/Blueprint"
      responses:
        "201":
          description: Created -- Blueprint definition saved.
          schema:
            $ref: "#/definitions/Blueprint"
      tags:
        - Blueprint
      x-ms-examples:
        Blueprint:
          parameters:
            api-version: 2017-11-11-preview
            blueprint:
              properties:
                description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                parameters:
                  costCenter:
                    metadata:
                      displayName: force cost center tag for all resources under given subscription.
                    type: string
                  owners:
                    metadata:
                      displayName: assign owners to subscription along with blueprint assignment.
                    type: array
                  storageAccountType:
                    metadata:
                      displayName: storage account type.
                    type: string
                resourceGroups:
                  storageRG:
                    metadata:
                      description: Contains storageAccounts that collect all shoebox logs.
                      displayName: storage resource group
                targetScope: subscription
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "201":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint
                name: simpleBlueprint
                properties:
                  description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                  parameters:
                    costCenter:
                      metadata:
                        description: null
                        displayName: force cost center tag for all resources under given subscription.
                      type: string
                    owners:
                      metadata:
                        description: null
                        displayName: assign owners to subscription along with blueprint assignment.
                      type: array
                    storageAccountType:
                      metadata:
                        description: null
                        displayName: storage account type.
                      type: string
                  resourceGroups:
                    storageRG:
                      metadata:
                        description: Contains storageAccounts that collect all shoebox logs.
                        displayName: storage resource group
                  targetScope: subscription
                type: Microsoft.Blueprint/blueprints
  "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/artifacts":
    get:
      description: List artifacts for a given Blueprint.
      operationId: Artifacts_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
      responses:
        "200":
          description: OK -- Blueprint artifacts retrieved.
          schema:
            $ref: "#/definitions/ArtifactList"
      tags:
        - Artifact
      x-ms-examples:
        ArtifactList:
          parameters:
            api-version: 2017-11-11-preview
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                value:
                  - id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/ownerAssignment
                    kind: roleAssignment
                    name: ownerAssignment
                    properties:
                      displayName: enforce owners of given subscription
                      principalIds: "[parameters('owners')]"
                      roleDefinitionId: /providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7
                    type: Microsoft.Blueprint/blueprints/artifacts
                  - id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/costCenterPolicy
                    kind: policyAssignment
                    name: costCenterPolicy
                    properties:
                      displayName: force costCenter tag on all resources
                      parameters:
                        tagName:
                          value: costCenter
                        tagValue:
                          value: "[parameter('costCenter')]"
                      policyDefinitionId: /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
                    type: Microsoft.Blueprint/blueprints/artifacts
                  - id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/storageTemplate
                    kind: template
                    name: storageTemplate
                    properties:
                      parameters:
                        storageAccountType:
                          value: "[parameters('storageAccountType')]"
                      resourceGroup: storageRG
                      template:
                        contentVersion: 1.0.0.0
                        outputs:
                          storageAccountName:
                            type: string
                            value: "[variables('storageAccountName')]"
                        parameters:
                          storageAccountType:
                            allowedValues:
                              - Standard_LRS
                              - Standard_GRS
                              - Standard_ZRS
                              - Premium_LRS
                            defaultValue: Standard_LRS
                            metadata:
                              description: Storage Account type
                            type: string
                        resources:
                          - apiVersion: 2016-01-01
                            kind: Storage
                            location: "[resourceGroup().location]"
                            name: "[variables('storageAccountName')]"
                            properties: {}
                            sku:
                              name: "[parameters('storageAccountType')]"
                            type: Microsoft.Storage/storageAccounts
                        variables:
                          storageAccountName: "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                    type: Microsoft.Blueprint/blueprints/artifacts
      x-ms-pageable:
        nextLinkName: nextLink
  "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/artifacts/{artifactName}":
    delete:
      description: Delete a Blueprint artifact.
      operationId: Artifacts_Delete
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/ArtifactNameParameter"
      responses:
        "200":
          description: OK -- Blueprint artifact deleted.
          schema:
            $ref: "#/definitions/Artifact"
        "204":
          description: No Content
      tags:
        - Artifact
      x-ms-examples:
        ARMTemplateArtifact_Delete:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/storageTemplate
                kind: template
                name: storageTemplate
                properties:
                  parameters:
                    storageAccountType:
                      value: "[parameters('storageAccountType')]"
                  resourceGroup: storageRG
                  template:
                    contentVersion: 1.0.0.0
                    outputs:
                      storageAccountName:
                        type: string
                        value: "[variables('storageAccountName')]"
                    parameters:
                      storageAccountType:
                        allowedValues:
                          - Standard_LRS
                          - Standard_GRS
                          - Standard_ZRS
                          - Premium_LRS
                        defaultValue: Standard_LRS
                        metadata:
                          description: Storage Account type
                        type: string
                    resources:
                      - apiVersion: 2016-01-01
                        kind: Storage
                        location: "[resourceGroup().location]"
                        name: "[variables('storageAccountName')]"
                        properties: {}
                        sku:
                          name: "[parameters('storageAccountType')]"
                        type: Microsoft.Storage/storageAccounts
                    variables:
                      storageAccountName: "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                type: Microsoft.Blueprint/blueprints/artifacts
            "204": {}
        PolicyAssignmentArtifact_Delete:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/costCenterPolicy
                kind: policyAssignment
                name: costCenterPolicy
                properties:
                  displayName: force costCenter tag on all resources
                  parameters:
                    tagName:
                      value: costCenter
                    tagValue:
                      value: "[parameter('costCenter')]"
                  policyDefinitionId: /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
                type: Microsoft.Blueprint/blueprints/artifacts
            "204": {}
        RoleAssignmentArtifact_Delete:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/ownerAssignment
                kind: roleAssignment
                name: ownerAssignment
                properties:
                  displayName: enforce owners of given subscription
                  principalIds: "[parameters('owners')]"
                  roleDefinitionId: /providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7
                type: Microsoft.Blueprint/blueprints/artifacts
            "204": {}
    get:
      description: Get a Blueprint artifact.
      operationId: Artifacts_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/ArtifactNameParameter"
      responses:
        "200":
          description: OK -- Blueprint artifact retrieved.
          schema:
            $ref: "#/definitions/Artifact"
      tags:
        - Artifact
      x-ms-examples:
        ARMTemplateArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/storageTemplate
                kind: template
                name: storageTemplate
                properties:
                  parameters:
                    storageAccountType:
                      value: "[parameters('storageAccountType')]"
                  resourceGroup: storageRG
                  template:
                    contentVersion: 1.0.0.0
                    outputs:
                      storageAccountName:
                        type: string
                        value: "[variables('storageAccountName')]"
                    parameters:
                      storageAccountType:
                        allowedValues:
                          - Standard_LRS
                          - Standard_GRS
                          - Standard_ZRS
                          - Premium_LRS
                        defaultValue: Standard_LRS
                        metadata:
                          description: Storage Account type
                        type: string
                    resources:
                      - apiVersion: 2016-01-01
                        kind: Storage
                        location: "[resourceGroup().location]"
                        name: "[variables('storageAccountName')]"
                        properties: {}
                        sku:
                          name: "[parameters('storageAccountType')]"
                        type: Microsoft.Storage/storageAccounts
                    variables:
                      storageAccountName: "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                type: Microsoft.Blueprint/blueprints/artifacts
        PolicyAssignmentArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/costCenterPolicy
                kind: policyAssignment
                name: costCenterPolicy
                properties:
                  displayName: force costCenter tag on all resources
                  parameters:
                    tagName:
                      value: costCenter
                    tagValue:
                      value: "[parameter('costCenter')]"
                  policyDefinitionId: /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
                type: Microsoft.Blueprint/blueprints/artifacts
        RoleAssignmentArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/ownerAssignment
                kind: roleAssignment
                name: ownerAssignment
                properties:
                  displayName: enforce owners of given subscription
                  principalIds: "[parameters('owners')]"
                  roleDefinitionId: /providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7
                type: Microsoft.Blueprint/blueprints/artifacts
    put:
      description: Create or update Blueprint artifact.
      operationId: Artifacts_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/ArtifactNameParameter"
        - description: Blueprint artifact to save.
          in: body
          name: artifact
          required: true
          schema:
            $ref: "#/definitions/Artifact"
      responses:
        "201":
          description: Created -- Blueprint artifact created/updated.
          schema:
            $ref: "#/definitions/Artifact"
      tags:
        - Artifact
      x-ms-examples:
        ARMTemplateArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifact:
              kind: template
              properties:
                parameters:
                  storageAccountType:
                    value: "[parameters('storageAccountType')]"
                resourceGroup: storageRG
                template:
                  contentVersion: 1.0.0.0
                  outputs:
                    storageAccountName:
                      type: string
                      value: "[variables('storageAccountName')]"
                  parameters:
                    storageAccountType:
                      allowedValues:
                        - Standard_LRS
                        - Standard_GRS
                        - Standard_ZRS
                        - Premium_LRS
                      defaultValue: Standard_LRS
                      metadata:
                        description: Storage Account type
                      type: string
                  resources:
                    - apiVersion: 2016-01-01
                      kind: Storage
                      location: "[resourceGroup().location]"
                      name: "[variables('storageAccountName')]"
                      properties: {}
                      sku:
                        name: "[parameters('storageAccountType')]"
                      type: Microsoft.Storage/storageAccounts
                  variables:
                    storageAccountName: "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "201":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/storageTemplate
                kind: template
                name: storageTemplate
                properties:
                  parameters:
                    storageAccountType:
                      value: "[parameters('storageAccountType')]"
                  resourceGroup: storageRG
                  template:
                    contentVersion: 1.0.0.0
                    outputs:
                      storageAccountName:
                        type: string
                        value: "[variables('storageAccountName')]"
                    parameters:
                      storageAccountType:
                        allowedValues:
                          - Standard_LRS
                          - Standard_GRS
                          - Standard_ZRS
                          - Premium_LRS
                        defaultValue: Standard_LRS
                        metadata:
                          description: Storage Account type
                        type: string
                    resources:
                      - apiVersion: 2016-01-01
                        kind: Storage
                        location: "[resourceGroup().location]"
                        name: "[variables('storageAccountName')]"
                        properties: {}
                        sku:
                          name: "[parameters('storageAccountType')]"
                        type: Microsoft.Storage/storageAccounts
                    variables:
                      storageAccountName: "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                type: Microsoft.Blueprint/blueprints/artifacts
        PolicyAssignmentArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifact:
              kind: policyAssignment
              properties:
                displayName: force costCenter tag on all resources
                parameters:
                  tagName:
                    value: costCenter
                  tagValue:
                    value: "[parameter('costCenter')]"
                policyDefinitionId: /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "201":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/costCenterPolicy
                kind: policyAssignment
                name: costCenterPolicy
                properties:
                  displayName: force costCenter tag on all resources
                  parameters:
                    tagName:
                      value: costCenter
                    tagValue:
                      value: "[parameter('costCenter')]"
                  policyDefinitionId: /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
                type: Microsoft.Blueprint/blueprints/artifacts
        RoleAssignmentArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifact:
              kind: roleAssignment
              properties:
                displayName: enforce owners of given subscription
                principalIds: "[parameters('owners')]"
                roleDefinitionId: /providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "201":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/ownerAssignment
                kind: roleAssignment
                name: ownerAssignment
                properties:
                  displayName: enforce owners of given subscription
                  principalIds: "[parameters('owners')]"
                  roleDefinitionId: /providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7
                type: Microsoft.Blueprint/blueprints/artifacts
  "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions":
    get:
      description: List published versions of given Blueprint.
      operationId: PublishedBlueprints_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
      responses:
        "200":
          description: OK -- all published Blueprint retrieved.
          schema:
            $ref: "#/definitions/PublishedBlueprintList"
      tags:
        - PublishedBlueprint
      x-ms-examples:
        PublishedBlueprintList:
          parameters:
            api-version: 2017-11-11-preview
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
          responses:
            "200":
              body:
                value:
                  - id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/v1
                    name: v1
                    properties:
                      blueprintName: simpleBlueprint
                      description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                      parameters:
                        costCenter:
                          metadata:
                            displayName: force cost center tag for all resources under given subscription.
                          type: string
                        owners:
                          metadata:
                            displayName: assign owners to subscription along with blueprint assignment.
                          type: array
                        storageAccountType:
                          metadata:
                            displayName: storage account type.
                          type: string
                      resourceGroups:
                        storageRG:
                          metadata:
                            description: Contains storageAccounts that collect all shoebox logs.
                            displayName: storage resource group
                      status: null
                      targetScope: subscription
                    type: Microsoft.Blueprint/blueprints/versions
      x-ms-pageable:
        nextLinkName: nextLink
  "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}":
    delete:
      description: Delete a published Blueprint.
      operationId: PublishedBlueprints_Delete
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
      responses:
        "200":
          description: OK -- published Blueprint deleted.
          schema:
            $ref: "#/definitions/PublishedBlueprint"
        "204":
          description: No Content
      tags:
        - PublishedBlueprint
      x-ms-examples:
        PublishedBlueprint_Delete:
          parameters:
            api-version: 2017-11-11-preview
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
            versionId: v2
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint
                name: v2
                properties:
                  blueprintName: simpleBlueprint
                  description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                  parameters:
                    costCenter:
                      metadata:
                        description: null
                        displayName: force cost center tag for all resources under given subscription.
                      type: string
                    owners:
                      metadata:
                        description: null
                        displayName: assign owners to subscription along with blueprint assignment.
                      type: array
                    storageAccountType:
                      metadata:
                        description: null
                        displayName: storage account type.
                      type: string
                  resourceGroups:
                    storageRG:
                      metadata:
                        description: Contains storageAccounts that collect all shoebox logs.
                        displayName: storage resource group
                  targetScope: subscription
                type: Microsoft.Blueprint/blueprints/versions
            "204": {}
    get:
      description: Get a published Blueprint.
      operationId: PublishedBlueprints_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
      responses:
        "200":
          description: OK -- published Blueprint retrieved.
          schema:
            $ref: "#/definitions/PublishedBlueprint"
      tags:
        - PublishedBlueprint
      x-ms-examples:
        PublishedBlueprint_Get:
          parameters:
            api-version: 2017-11-11-preview
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
            versionId: v2
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint
                name: v2
                properties:
                  blueprintName: simpleBlueprint
                  description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                  parameters:
                    costCenter:
                      metadata:
                        description: null
                        displayName: force cost center tag for all resources under given subscription.
                      type: string
                    owners:
                      metadata:
                        description: null
                        displayName: assign owners to subscription along with blueprint assignment.
                      type: array
                    storageAccountType:
                      metadata:
                        description: null
                        displayName: storage account type.
                      type: string
                  resourceGroups:
                    storageRG:
                      metadata:
                        description: Contains storageAccounts that collect all shoebox logs.
                        displayName: storage resource group
                  targetScope: subscription
                type: Microsoft.Blueprint/blueprints/versions
    put:
      description: Publish a new version of the Blueprint with the latest artifacts. Published Blueprints are immutable.
      operationId: PublishedBlueprints_Create
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
      responses:
        "201":
          description: Created -- published Blueprint.
          schema:
            $ref: "#/definitions/PublishedBlueprint"
      tags:
        - PublishedBlueprint
      x-ms-examples:
        PublishedBlueprint_Publish:
          parameters:
            api-version: 2017-11-11-preview
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
            versionId: v2
          responses:
            "201":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint
                name: v2
                properties:
                  blueprintName: simpleBlueprint
                  description: blueprint contains all artifact kinds {'template', 'rbac', 'policy'}
                  parameters:
                    costCenter:
                      metadata:
                        description: null
                        displayName: force cost center tag for all resources under given subscription.
                      type: string
                    owners:
                      metadata:
                        description: null
                        displayName: assign owners to subscription along with blueprint assignment.
                      type: array
                    storageAccountType:
                      metadata:
                        description: null
                        displayName: storage account type.
                      type: string
                  resourceGroups:
                    storageRG:
                      metadata:
                        description: Contains storageAccounts that collect all shoebox logs.
                        displayName: storage resource group
                  targetScope: subscription
                type: Microsoft.Blueprint/blueprints/versions
  "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}/artifacts":
    get:
      description: List artifacts for a published Blueprint.
      operationId: PublishedArtifacts_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
      responses:
        "200":
          description: OK -- all published artifact retrieved.
          schema:
            $ref: "#/definitions/ArtifactList"
      tags:
        - PublishedArtifact
      x-ms-examples:
        ArtifactList:
          parameters:
            api-version: 2017-11-11-preview
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
            versionId: V2
          responses:
            "200":
              body:
                value:
                  - id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/ownerAssignment
                    kind: roleAssignment
                    name: ownerAssignment
                    properties:
                      displayName: enforce owners of given subscription
                      principalIds: "[parameters('owners')]"
                      roleDefinitionId: /providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7
                    type: Microsoft.Blueprint/blueprints/versions/artifacts
                  - id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/costCenterPolicy
                    kind: policyAssignment
                    name: costCenterPolicy
                    properties:
                      displayName: force costCenter tag on all resources
                      parameters:
                        tagName:
                          value: costCenter
                        tagValue:
                          value: "[parameter('costCenter')]"
                      policyDefinitionId: /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
                    type: Microsoft.Blueprint/blueprints/versions/artifacts
                  - id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/storageTemplate
                    kind: template
                    name: storageTemplate
                    properties:
                      parameters:
                        storageAccountType:
                          value: "[parameters('storageAccountType')]"
                      resourceGroup: storageRG
                      template:
                        contentVersion: 1.0.0.0
                        outputs:
                          storageAccountName:
                            type: string
                            value: "[variables('storageAccountName')]"
                        parameters:
                          storageAccountType:
                            allowedValues:
                              - Standard_LRS
                              - Standard_GRS
                              - Standard_ZRS
                              - Premium_LRS
                            defaultValue: Standard_LRS
                            metadata:
                              description: Storage Account type
                            type: string
                        resources:
                          - apiVersion: 2016-01-01
                            kind: Storage
                            location: "[resourceGroup().location]"
                            name: "[variables('storageAccountName')]"
                            properties: {}
                            sku:
                              name: "[parameters('storageAccountType')]"
                            type: Microsoft.Storage/storageAccounts
                        variables:
                          storageAccountName: "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                    type: Microsoft.Blueprint/blueprints/versions/artifacts
      x-ms-pageable:
        nextLinkName: nextLink
  "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}/artifacts/{artifactName}":
    get:
      description: Get an artifact for a published Blueprint.
      operationId: PublishedArtifacts_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ManagementGroupNameParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
        - $ref: "#/parameters/ArtifactNameParameter"
      responses:
        "200":
          description: OK -- published artifact retrieved.
          schema:
            $ref: "#/definitions/Artifact"
      tags:
        - PublishedArtifact
      x-ms-examples:
        ARMTemplateArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
            versionId: V2
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/storageTemplate
                kind: template
                name: storageTemplate
                properties:
                  parameters:
                    storageAccountType:
                      value: "[parameters('storageAccountType')]"
                  resourceGroup: storageRG
                  template:
                    contentVersion: 1.0.0.0
                    outputs:
                      storageAccountName:
                        type: string
                        value: "[variables('storageAccountName')]"
                    parameters:
                      storageAccountType:
                        allowedValues:
                          - Standard_LRS
                          - Standard_GRS
                          - Standard_ZRS
                          - Premium_LRS
                        defaultValue: Standard_LRS
                        metadata:
                          description: Storage Account type
                        type: string
                    resources:
                      - apiVersion: 2016-01-01
                        kind: Storage
                        location: "[resourceGroup().location]"
                        name: "[variables('storageAccountName')]"
                        properties: {}
                        sku:
                          name: "[parameters('storageAccountType')]"
                        type: Microsoft.Storage/storageAccounts
                    variables:
                      storageAccountName: "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                type: Microsoft.Blueprint/blueprints/versions/artifacts
        PolicyAssignmentArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
            versionId: V2
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/costCenterPolicy
                kind: policyAssignment
                name: costCenterPolicy
                properties:
                  displayName: force costCenter tag on all resources
                  parameters:
                    tagName:
                      value: costCenter
                    tagValue:
                      value: "[parameter('costCenter')]"
                  policyDefinitionId: /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
                type: Microsoft.Blueprint/blueprints/versions/artifacts
        RoleAssignmentArtifact:
          parameters:
            api-version: 2017-11-11-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            managementGroupName: ContosoOnlineGroup
            managementGroupsNamespace: Microsoft.Management
            versionId: V2
          responses:
            "200":
              body:
                id: /providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/ownerAssignment
                kind: roleAssignment
                name: ownerAssignment
                properties:
                  displayName: enforce owners of given subscription
                  principalIds: "[parameters('owners')]"
                  roleDefinitionId: /providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7
                type: Microsoft.Blueprint/blueprints/versions/artifacts
definitions:
  Artifact:
    allOf:
      - $ref: "#/definitions/AzureResourceBase"
    description: Represents a Blueprint artifact.
    discriminator: kind
    properties:
      kind:
        description: Specifies the kind of Blueprint artifact.
        enum:
          - template
          - roleAssignment
          - policyAssignment
        type: string
        x-ms-enum:
          modelAsString: true
          name: ArtifactKind
    required:
      - kind
    type: object
  ArtifactList:
    description: List of Blueprint artifacts
    properties:
      nextLink:
        description: Link to the next page of results.
        readOnly: true
        type: string
      value:
        description: List of Blueprint artifacts.
        items:
          $ref: "#/definitions/Artifact"
        type: array
    type: object
  ArtifactPropertiesBase:
    description: Common properties shared by different artifacts.
    properties:
      dependsOn:
        description: Artifacts which need to be deployed before the specified artifact.
        items:
          description: ID of peer artifact.
          type: string
        type: array
    type: object
    x-ms-external: true
  AzureResourceBase:
    description: Common properties for all Azure resources.
    properties:
      id:
        description: String Id used to locate any resource on Azure.
        readOnly: true
        type: string
      name:
        description: Name of this resource.
        readOnly: true
        type: string
      type:
        description: Type of this resource.
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  Blueprint:
    allOf:
      - $ref: "#/definitions/AzureResourceBase"
    description: Represents a Blueprint definition.
    properties:
      properties:
        $ref: "#/definitions/BlueprintProperties"
        description: Detailed properties for blueprint
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  BlueprintList:
    description: List of Blueprint definitions.
    properties:
      nextLink:
        description: Link to the next page of results.
        readOnly: true
        type: string
      value:
        description: List of Blueprint definitions.
        items:
          $ref: "#/definitions/Blueprint"
        type: array
    title: BlueprintList
    type: object
  BlueprintProperties:
    allOf:
      - $ref: "#/definitions/SharedBlueprintProperties"
    description: Schema for Blueprint properties.
    properties:
      layout:
        description: Layout view of the blueprint, for UI reference.
        type: object
      versions:
        description: Published versions of this blueprint.
        type: object
    required:
      - targetScope
    type: object
    x-ms-external: true
  BlueprintResourcePropertiesBase:
    description: Shared properties between all Blueprint resources.
    properties:
      description:
        description: Multi-line explain this resource.
        maxLength: 500
        type: string
      displayName:
        description: One-liner string explain this resource.
        maxLength: 256
        type: string
    type: object
    x-ms-external: true
  BlueprintResourceStatusBase:
    description: Shared status properties between all Blueprint resources.
    properties:
      lastModified:
        description: Last modified time of this blueprint.
        readOnly: true
        type: string
      timeCreated:
        description: Creation time of this blueprint.
        readOnly: true
        type: string
    type: object
  BlueprintStatus:
    allOf:
      - $ref: "#/definitions/BlueprintResourceStatusBase"
    description: The status of the blueprint. This field is readonly.
    properties: {}
    type: object
  ParameterDefinition:
    description: Represent a parameter with constrains and metadata.
    properties:
      allowedValues:
        description: Array of allowed values for this parameter.
        items:
          description: Allowed value.
        type: array
      defaultValue:
        description: Default Value for this parameter.
      metadata:
        $ref: "#/definitions/ParameterDefinitionMetadata"
        description: User-friendly properties for this parameter.
        x-ms-client-flatten: true
      type:
        description: Allowed data types for Azure Resource Manager template parameters.
        enum:
          - string
          - array
          - bool
          - int
          - object
          - secureObject
          - secureString
        type: string
        x-ms-enum:
          modelAsString: true
          name: TemplateParameterType
    required:
      - type
    type: object
  ParameterDefinitionCollection:
    additionalProperties:
      $ref: "#/definitions/ParameterDefinition"
      description: named collection of parameter metadata.
    description: A dictionary hold parameter name and it's metadata.
    properties: {}
    type: object
  ParameterDefinitionMetadata:
    description: User-friendly properties for this parameter.
    properties:
      description:
        description: Description of this parameter/resourceGroup.
        maxLength: 500
        type: string
      displayName:
        description: DisplayName of this parameter/resourceGroup.
        maxLength: 256
        type: string
      strongType:
        description: StrongType for UI to render rich experience during assignment time.
        maxLength: 64
        type: string
    type: object
  ParameterValue:
    allOf:
      - $ref: "#/definitions/ParameterValueBase"
    description: Value for the specified parameter.
    properties:
      value:
        description: actual value.
    required:
      - value
    type: object
  ParameterValueBase:
    description: Base class for ParameterValue.
    properties:
      description:
        description: Optional property, just to establish ParameterValueBase as a BaseClass.
        type: string
    type: object
  ParameterValueCollection:
    additionalProperties:
      $ref: "#/definitions/ParameterValueBase"
      description: keyValue pair of parameter fulfillment.
    description: A dictionary for parameters and their corresponding values.
    properties: {}
    type: object
  PolicyAssignmentArtifact:
    allOf:
      - $ref: "#/definitions/Artifact"
    description: Blueprint artifact applies Policy assignments.
    properties:
      properties:
        $ref: "#/definitions/PolicyAssignmentArtifactProperties"
        description: properties for policyAssignment Artifact
        x-ms-client-flatten: true
    required:
      - properties
    type: object
    x-ms-discriminator-value: policyAssignment
  PolicyAssignmentArtifactProperties:
    allOf:
      - $ref: "#/definitions/BlueprintResourcePropertiesBase"
      - $ref: "#/definitions/ArtifactPropertiesBase"
    description: PolicyAssignment properties
    properties:
      parameters:
        $ref: "#/definitions/ParameterValueCollection"
        description: Parameter values for the policy definition.
      policyDefinitionId:
        description: Azure resource ID of the policy definition.
        type: string
      resourceGroup:
        description: Name of the resource group placeholder to which the policy will be assigned.
        type: string
    required:
      - policyDefinitionId
      - parameters
    type: object
  PublishedBlueprint:
    allOf:
      - $ref: "#/definitions/AzureResourceBase"
    description: Represents a published Blueprint.
    properties:
      properties:
        $ref: "#/definitions/PublishedBlueprintProperties"
        description: Detailed properties for published Blueprint
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  PublishedBlueprintList:
    description: List of published Blueprints
    properties:
      nextLink:
        description: Link to the next page of results.
        readOnly: true
        type: string
      value:
        description: List of published Blueprints.
        items:
          $ref: "#/definitions/PublishedBlueprint"
        type: array
    title: BlueprintList
    type: object
  PublishedBlueprintProperties:
    allOf:
      - $ref: "#/definitions/SharedBlueprintProperties"
    description: Schema for published Blueprint properties.
    properties:
      blueprintName:
        description: Name of the Blueprint definition.
        type: string
      changeNotes:
        description: Version-specific change notes
        maxLength: 500
        type: string
    type: object
    x-ms-external: true
  ResourceGroupDefinition:
    description: Represents an Azure resource group in a Blueprint definition.
    properties:
      dependsOn:
        description: Artifacts which need to be deployed before this resource group.
        items:
          description: Name of peer artifact.
          type: string
        type: array
      location:
        description: Location of this resourceGroup, leave empty if the resource group location will be specified during the Blueprint assignment.
        maxLength: 90
        type: string
      metadata:
        $ref: "#/definitions/ParameterDefinitionMetadata"
        description: User-friendly properties for this resource group.
        x-ms-client-flatten: true
      name:
        description: Name of this resourceGroup, leave empty if the resource group name will be specified during the Blueprint assignment.
        maxLength: 90
        minLength: 1
        type: string
    type: object
  ResourceGroupDefinitionCollection:
    additionalProperties:
      $ref: "#/definitions/ResourceGroupDefinition"
      description: named collection for resourceGroupDefinition
    description: A dictionary which maps resource group placeholders to the resource groups which will be created.
    properties: {}
    type: object
  ResourceGroupValue:
    description: Represents an Azure resource group.
    properties:
      location:
        description: Location of the resource group
        type: string
      name:
        description: Name of the resource group
        maxLength: 90
        minLength: 1
        type: string
    type: object
  ResourceGroupValueCollection:
    additionalProperties:
      $ref: "#/definitions/ResourceGroupValue"
    description: A dictionary which maps resource group placeholders to the resource groups which will be created.
    properties: {}
    type: object
  ResourceProviderOperation:
    description: Supported operation of this resource provider.
    properties:
      display:
        description: Display metadata associated with the operation.
        properties:
          description:
            description: Description of this operation.
            type: string
          operation:
            description: "Type of operation: get, read, delete, etc."
            type: string
          provider:
            description: "Resource provider: Microsoft Blueprint."
            type: string
          resource:
            description: Resource on which the operation is performed.
            type: string
      name:
        description: Operation name, in format of {provider}/{resource}/{operation}
        type: string
    readOnly: true
  ResourceProviderOperationList:
    description: Result of the request to list operations.
    properties:
      value:
        description: List of operations supported by this resource provider.
        items:
          $ref: "#/definitions/ResourceProviderOperation"
        type: array
    readOnly: true
  RoleAssignmentArtifact:
    allOf:
      - $ref: "#/definitions/Artifact"
    description: Blueprint artifact applies Azure role assignment.
    properties:
      properties:
        $ref: "#/definitions/RoleAssignmentArtifactProperties"
        description: Properties for roleAssignment artifact.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
    x-ms-discriminator-value: roleAssignment
  RoleAssignmentArtifactProperties:
    allOf:
      - $ref: "#/definitions/BlueprintResourcePropertiesBase"
      - $ref: "#/definitions/ArtifactPropertiesBase"
    description: Properties of the Role assignment artifact.
    properties:
      principalIds:
        description: Array of user or group identities in Azure Active Directory. The roleDefinition will apply to these identity.
      resourceGroup:
        description: RoleAssignment will be scope to this resourceGroup, if left empty, it would scope to the subscription.
        type: string
      roleDefinitionId:
        description: Azure resource ID of the RoleDefinition.
        type: string
    required:
      - roleDefinitionId
      - principalIds
    type: object
  SecretReferenceParameterValue:
    allOf:
      - $ref: "#/definitions/ParameterValueBase"
    description: The reference to a secret, if the parameter should be protected.
    properties:
      reference:
        $ref: "#/definitions/SecretValueReference"
        description: Specifies the reference.
    required:
      - reference
    type: object
  SecretValueReference:
    description: Reference to a KeyVault secret.
    properties:
      keyVault:
        $ref: "#/definitions/keyVaultReference"
        description: Specifies the reference to a given Azure KeyVault.
      secretName:
        description: Name of the secret.
        type: string
      secretVersion:
        description: Version of the secret, (if there are multiple versions)
        type: string
    required:
      - keyVault
      - secretName
    type: object
  SharedBlueprintProperties:
    allOf:
      - $ref: "#/definitions/BlueprintResourcePropertiesBase"
    description: Shared Schema for both blueprintProperties and publishedBlueprintProperties.
    properties:
      parameters:
        $ref: "#/definitions/ParameterDefinitionCollection"
        description: Parameters required by this Blueprint definition.
      resourceGroups:
        $ref: "#/definitions/ResourceGroupDefinitionCollection"
        description: Resource group placeholders defined by this Blueprint definition.
      status:
        $ref: "#/definitions/BlueprintStatus"
        description: Status of the Blueprint. This field is readonly.
        readOnly: true
      targetScope:
        description: The scope where this Blueprint can be applied.
        enum:
          - subscription
          - managementGroup
        type: string
        x-ms-enum:
          modelAsString: true
          name: BlueprintTargetScope
    type: object
    x-ms-external: true
  TemplateArtifact:
    allOf:
      - $ref: "#/definitions/Artifact"
    description: Blueprint artifact deploys Azure resource manager template.
    properties:
      properties:
        $ref: "#/definitions/TemplateArtifactProperties"
        description: Properties for template artifact
        x-ms-client-flatten: true
    required:
      - properties
    type: object
    x-ms-discriminator-value: template
  TemplateArtifactProperties:
    allOf:
      - $ref: "#/definitions/BlueprintResourcePropertiesBase"
      - $ref: "#/definitions/ArtifactPropertiesBase"
    description: Properties of a Template Artifact.
    properties:
      parameters:
        $ref: "#/definitions/ParameterValueCollection"
        description: Template parameter values.
      resourceGroup:
        description: If applicable, the name of the resource group placeholder to which the template will be deployed.
        type: string
      template:
        description: The Azure Resource Manager template body.
        type: object
    required:
      - template
      - parameters
    type: object
  keyVaultReference:
    description: Specifies the link to a KeyVault.
    properties:
      id:
        description: Azure resource ID of the KeyVault.
        type: string
    required:
      - id
    type: object
