swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: Azure Blueprints Client provides access to blueprint definitions, assignments, and artifacts, and related blueprint operations.
  title: BlueprintClient
  version: 2018-11-01-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/2018-11-01-preview/blueprintDefinition.json
      version: "2.0"
  x-preferred: true
  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 blueprint artifact.
    in: path
    name: artifactName
    required: true
    type: string
    x-ms-parameter-location: method
  BlueprintNameParameter:
    description: Name of the blueprint definition.
    in: path
    name: blueprintName
    required: true
    type: string
    x-ms-parameter-location: method
  PublishedBlueprintVersionIdParameter:
    description: Version of the published blueprint definition.
    in: path
    name: versionId
    required: true
    type: string
    x-ms-parameter-location: method
  ScopeParameter:
    description: "The scope of the resource. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'). For blueprint assignments management group scope is reserved for future use."
    in: path
    name: scope
    required: true
    type: string
    x-ms-parameter-location: method
    x-ms-skip-url-encoding: true
paths:
  "/{scope}/providers/Microsoft.Blueprint/blueprints":
    get:
      description: List blueprint definitions.
      operationId: Blueprints_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
      responses:
        "200":
          description: OK -- retrieved list of blueprint definitions.
          schema:
            $ref: "#/definitions/BlueprintList"
      tags:
        - Blueprint
      x-ms-examples:
        ManagementGroupBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        SubscriptionBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/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
  "/{scope}/providers/Microsoft.Blueprint/blueprints/{blueprintName}":
    delete:
      description: Delete a blueprint definition.
      operationId: Blueprints_Delete
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
      responses:
        "200":
          description: OK -- blueprint definition deleted.
          schema:
            $ref: "#/definitions/Blueprint"
        "204":
          description: No Content
      tags:
        - Blueprint
      x-ms-examples:
        ManagementGroupBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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": {}
        SubscriptionBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
      responses:
        "200":
          description: OK -- blueprint definition retrieved.
          schema:
            $ref: "#/definitions/Blueprint"
      tags:
        - Blueprint
      x-ms-examples:
        ManagementGroupBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        SubscriptionBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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 a blueprint definition.
      operationId: Blueprints_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $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:
        ManagementGroupBlueprint:
          parameters:
            api-version: 2018-11-01-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
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        ResourceGroupWithTags:
          parameters:
            api-version: 2018-11-01-preview
            blueprint:
              properties:
                description: An example blueprint containing an RG with two tags.
                resourceGroups:
                  myRGName:
                    location: westus
                    metadata:
                      displayName: My Resource Group
                    name: myRGName
                    tags:
                      costcenter: "123456"
                      nameOnlyTag: ""
                targetScope: subscription
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/{ManagementGroupId}
          responses:
            "201":
              body:
                id: /providers/Microsoft.Management/managementGroups/{ManagementGroupId}/providers/Microsoft.Blueprint/blueprints/RGTaggingExample
                name: RGTaggingExample
                properties:
                  description: An example blueprint containing an RG with two tags.
                  parameters: {}
                  resourceGroups:
                    myRGName:
                      dependsOn: []
                      location: westus
                      metadata:
                        displayName: My Resource Group
                      name: myRGName
                      tags:
                        costcenter: "123456"
                        tagWithNoValue: ""
                  status:
                    lastModified: 2019-04-29T20:52:56+00:00
                    timeCreated: 2019-04-29T20:52:56+00:00
                  targetScope: subscription
                type: Microsoft.Blueprint/blueprints
        SubscriptionBlueprint:
          parameters:
            api-version: 2018-11-01-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
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "201":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
  "/{scope}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/artifacts":
    get:
      description: List artifacts for a given blueprint definition.
      operationId: Artifacts_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
      responses:
        "200":
          description: OK -- blueprint artifacts retrieved.
          schema:
            $ref: "#/definitions/ArtifactList"
      tags:
        - Artifact
      x-ms-examples:
        MG-ArtifactList:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        Sub-ArtifactList:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/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: /subscriptions/00000000-0000-0000-0000-000000000000/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: /subscriptions/00000000-0000-0000-0000-000000000000/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
  "/{scope}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/artifacts/{artifactName}":
    delete:
      description: Delete a blueprint artifact.
      operationId: Artifacts_Delete
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $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:
        MG-ARMTemplateArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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": {}
        MG-PolicyAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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": {}
        MG-RoleAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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": {}
        Sub-ARMTemplateArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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": {}
        Sub-PolicyAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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": {}
        Sub-RoleAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/ArtifactNameParameter"
      responses:
        "200":
          description: OK -- blueprint artifact retrieved.
          schema:
            $ref: "#/definitions/Artifact"
      tags:
        - Artifact
      x-ms-examples:
        MG-ARMTemplateArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        MG-PolicyAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        MG-RoleAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        Sub-ARMTemplateArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
        Sub-PolicyAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
        Sub-RoleAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/ArtifactNameParameter"
        - description: Blueprint artifact to create or update.
          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:
        MG-ARMTemplateArtifact:
          parameters:
            api-version: 2018-11-01-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
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        MG-PolicyAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-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
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        MG-RoleAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-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
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        Sub-ARMTemplateArtifact:
          parameters:
            api-version: 2018-11-01-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
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "201":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
        Sub-PolicyAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-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
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "201":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
        Sub-RoleAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-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
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "201":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
  "/{scope}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions":
    get:
      description: List published versions of given blueprint definition.
      operationId: PublishedBlueprints_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
      responses:
        "200":
          description: OK -- all published versions of blueprint definition retrieved.
          schema:
            $ref: "#/definitions/PublishedBlueprintList"
      tags:
        - PublishedBlueprint
      x-ms-examples:
        PublishedManagementGroupBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
          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
        PublishedSubscriptionBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/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
  "/{scope}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}":
    delete:
      description: Delete a published version of a blueprint definition.
      operationId: PublishedBlueprints_Delete
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
      responses:
        "200":
          description: OK -- published version of blueprint definition deleted.
          schema:
            $ref: "#/definitions/PublishedBlueprint"
        "204":
          description: No Content
      tags:
        - PublishedBlueprint
      x-ms-examples:
        PublishedManagementGroupBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
            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": {}
        PublishedSubscriptionBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            versionId: v2
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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 version of a blueprint definition.
      operationId: PublishedBlueprints_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
      responses:
        "200":
          description: OK -- published blueprint definition retrieved.
          schema:
            $ref: "#/definitions/PublishedBlueprint"
      tags:
        - PublishedBlueprint
      x-ms-examples:
        PublishedManagementGroupBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
            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
        PublishedSubscriptionBlueprint:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            versionId: v2
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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 definition with the latest artifacts. Published blueprint definitions are immutable.
      operationId: PublishedBlueprints_Create
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
        - description: Published Blueprint to create or update.
          in: body
          name: publishedBlueprint
          required: false
          schema:
            $ref: "#/definitions/PublishedBlueprint"
      responses:
        "201":
          description: Created -- blueprint definition published.
          schema:
            $ref: "#/definitions/PublishedBlueprint"
      tags:
        - PublishedBlueprint
      x-ms-examples:
        PublishedManagementGroupBlueprint_Publish:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
            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
        PublishedSubscriptionBlueprint_Publish:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            versionId: v2
          responses:
            "201":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
  "/{scope}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}/artifacts":
    get:
      description: List artifacts for a version of a published blueprint definition.
      operationId: PublishedArtifacts_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
      responses:
        "200":
          description: OK -- artifacts of a version of published blueprint definition retrieved.
          schema:
            $ref: "#/definitions/ArtifactList"
      tags:
        - PublishedArtifact
      x-ms-examples:
        MG-ArtifactList:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
            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
        Sub-ArtifactList:
          parameters:
            api-version: 2018-11-01-preview
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            versionId: V2
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/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: /subscriptions/00000000-0000-0000-0000-000000000000/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: /subscriptions/00000000-0000-0000-0000-000000000000/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
  "/{scope}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}/artifacts/{artifactName}":
    get:
      description: Get an artifact for a published blueprint definition.
      operationId: PublishedArtifacts_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/ScopeParameter"
        - $ref: "#/parameters/BlueprintNameParameter"
        - $ref: "#/parameters/PublishedBlueprintVersionIdParameter"
        - $ref: "#/parameters/ArtifactNameParameter"
      responses:
        "200":
          description: OK -- artifact of published blueprint definition retrieved.
          schema:
            $ref: "#/definitions/Artifact"
      tags:
        - PublishedArtifact
      x-ms-examples:
        MG-ARMTemplateArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
            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
        MG-PolicyAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
            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
        MG-RoleAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            scope: providers/Microsoft.Management/managementGroups/ContosoOnlineGroup
            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
        Sub-ARMTemplateArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: storageTemplate
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            versionId: V2
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
        Sub-PolicyAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: costCenterPolicy
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            versionId: V2
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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
        Sub-RoleAssignmentArtifact:
          parameters:
            api-version: 2018-11-01-preview
            artifactName: ownerAssignment
            blueprintName: simpleBlueprint
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            versionId: V2
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/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 definition.
        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 definition properties.
    properties:
      layout:
        description: Layout view of the blueprint definition for UI reference.
        type: object
      versions:
        description: Published versions of this blueprint definition.
        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 definition.
        format: date-time
        readOnly: true
        type: string
      timeCreated:
        description: Creation time of this blueprint definition.
        format: date-time
        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 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 its 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 blueprint assignment. Supported strong types are resourceType, principalId and location.
        maxLength: 64
        type: string
    type: object
  ParameterValue:
    description: Value for the specified parameter. Can be either 'value' or 'reference' but not both.
    properties:
      reference:
        $ref: "#/definitions/SecretValueReference"
        description: Parameter value as reference type.
      value:
        description: Parameter value as value type.
    type: object
  ParameterValueCollection:
    additionalProperties:
      $ref: "#/definitions/ParameterValue"
      description: Key/Value pair of parameter fulfillment.
    description: A dictionary for parameters and their corresponding values.
    properties: {}
    type: object
  PolicyAssignmentArtifact:
    allOf:
      - $ref: "#/definitions/Artifact"
    description: Blueprint artifact that applies a Policy assignment.
    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: Properties of a Policy assignment blueprint artifact.
    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 blueprint definitions.
    properties:
      nextLink:
        description: Link to the next page of results.
        readOnly: true
        type: string
      value:
        description: List of published blueprint definitions.
        items:
          $ref: "#/definitions/PublishedBlueprint"
        type: array
    title: BlueprintList
    type: object
  PublishedBlueprintProperties:
    allOf:
      - $ref: "#/definitions/SharedBlueprintProperties"
    description: Schema for published blueprint definition properties.
    properties:
      blueprintName:
        description: Name of the published 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
      tags:
        $ref: "#/definitions/ResourceGroupTagCollection"
        description: Tags to be assigned to this resource group.
    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
  ResourceGroupTagCollection:
    additionalProperties:
      type: string
    description: A dictionary of resource group tag values.
    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 operations 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: Results 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 that applies a Role assignment.
    properties:
      properties:
        $ref: "#/definitions/RoleAssignmentArtifactProperties"
        description: Properties for a Role assignment blueprint 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 a Role assignment blueprint artifact.
    properties:
      principalIds:
        description: Array of user or group identities in Azure Active Directory. The roleDefinition will apply to each identity.
      resourceGroup:
        description: RoleAssignment will be scope to this resourceGroup. If empty, it scopes to the subscription.
        type: string
      roleDefinitionId:
        description: Azure resource ID of the RoleDefinition.
        type: string
    required:
      - roleDefinitionId
      - principalIds
    type: object
  SecretValueReference:
    description: Reference to a Key Vault secret.
    properties:
      keyVault:
        $ref: "#/definitions/keyVaultReference"
        description: Specifies the reference to a given Azure Key Vault.
      secretName:
        description: Name of the secret.
        type: string
      secretVersion:
        description: The version of the secret to use. If left blank, the latest version of the secret is used.
        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 definition can be assigned.
        enum:
          - subscription
          - managementGroup
        type: string
        x-ms-enum:
          modelAsString: true
          name: BlueprintTargetScope
          values:
            - description: The blueprint targets a subscription during blueprint assignment.
              value: subscription
            - description: The blueprint targets a management group during blueprint assignment. This is reserved for future use.
              value: managementGroup
    type: object
    x-ms-external: true
  TemplateArtifact:
    allOf:
      - $ref: "#/definitions/Artifact"
    description: Blueprint artifact that deploys a Resource Manager template.
    properties:
      properties:
        $ref: "#/definitions/TemplateArtifactProperties"
        description: Properties for a Resource Manager template blueprint 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 Resource Manager template blueprint artifact.
    properties:
      parameters:
        $ref: "#/definitions/ParameterValueCollection"
        description: Resource Manager template blueprint artifact parameter values.
      resourceGroup:
        description: If applicable, the name of the resource group placeholder to which the Resource Manager template blueprint artifact will be deployed.
        type: string
      template:
        description: The Resource Manager template blueprint artifact body.
        type: object
    required:
      - template
      - parameters
    type: object
  keyVaultReference:
    description: Specifies the link to a Key Vault.
    properties:
      id:
        description: Azure resource ID of the Key Vault.
        type: string
    required:
      - id
    type: object
