swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: Role based access control provides you a way to apply granular level policy administration down to individual resources or resource groups. These operations enable you to manage role definitions and role assignments. A role definition describes the set of actions that can be performed on resources. A role assignment grants access to Azure Active Directory users.
  title: AuthorizationManagementClient
  version: 2015-07-01
  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/authorization/resource-manager/Microsoft.Authorization/stable/2015-07-01/authorization.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: authorization
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
  - text/json
produces:
  - application/json
  - text/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: The API version to use for this operation.
    in: query
    name: api-version
    required: true
    type: string
  SubscriptionIdParameter:
    description: The ID of the target subscription.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  /providers/Microsoft.Authorization/elevateAccess:
    post:
      description: Elevates access for a Global Administrator.
      operationId: ElevateAccess_Post
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns an HttpResponseMessage with HttpStatusCode 200.
      tags:
        - ElevateAccess
  /providers/Microsoft.Authorization/providerOperations:
    get:
      description: Gets provider operations metadata for all resource providers.
      operationId: ProviderOperationsMetadata_List
      parameters:
        - description: The API version to use for this operation.
          in: query
          name: api-version
          required: true
          type: string
        - default: resourceTypes
          description: Specifies whether to expand the values.
          in: query
          name: $expand
          required: false
          type: string
      responses:
        "200":
          description: OK - Returns an array of the operations metadata.
          schema:
            $ref: "#/definitions/ProviderOperationsMetadataListResult"
      tags:
        - ProviderOperationsMetadata
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
          responses:
            "200":
              body:
                value:
                  - displayName: displayName
                    id: id
                    name: name
                    operations: []
                    resourceTypes:
                      - displayName: name
                        name: name
                        operations: []
                    type: type
      x-ms-pageable:
        nextLinkName: nextLink
  "/providers/Microsoft.Authorization/providerOperations/{resourceProviderNamespace}":
    get:
      description: Gets provider operations metadata for the specified resource provider.
      operationId: ProviderOperationsMetadata_Get
      parameters:
        - description: The namespace of the resource provider.
          in: path
          name: resourceProviderNamespace
          required: true
          type: string
        - description: The API version to use for the operation.
          in: query
          name: api-version
          required: true
          type: string
        - default: resourceTypes
          description: Specifies whether to expand the values.
          in: query
          name: $expand
          required: false
          type: string
      responses:
        "200":
          description: OK - Returns the operations metadata.
          schema:
            $ref: "#/definitions/ProviderOperationsMetadata"
      tags:
        - ProviderOperationsMetadata
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            resourceProviderNamespace: resourceProviderNamespace
          responses:
            "200":
              body:
                displayName: displayName
                id: id
                name: name
                operations: []
                resourceTypes:
                  - displayName: name
                    name: name
                    operations: []
                type: type
  "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments":
    get:
      description: Gets all role assignments for the subscription.
      operationId: RoleAssignments_List
      parameters:
        - description: The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal.
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK - Returns an array of role assignments.
          schema:
            $ref: "#/definitions/RoleAssignmentListResult"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            subscriptionId: subId
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                    name: raId
                    properties:
                      principalId: Pid
                      roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                      scope: /subscriptions/subId/resourcegroups/rgname
                    type: Microsoft.Authorization/roleAssignments
      x-ms-odata: "#/definitions/RoleAssignmentFilter"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments":
    get:
      description: Gets role assignments for a resource group.
      operationId: RoleAssignments_ListForResourceGroup
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal.
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK - Returns an array of role assignments.
          schema:
            $ref: "#/definitions/RoleAssignmentListResult"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            resourceGroupName: rgname
            subscriptionId: subId
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                    name: raId
                    properties:
                      principalId: Pid
                      roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                      scope: /subscriptions/subId/resourcegroups/rgname
                    type: Microsoft.Authorization/roleAssignments
      x-ms-odata: "#/definitions/RoleAssignmentFilter"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Authorization/permissions":
    get:
      description: Gets all permissions the caller has for a resource group.
      operationId: Permissions_ListForResourceGroup
      parameters:
        - description: The name of the resource group to get the permissions for. The name is case insensitive.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK - Returns an array of permissions.
          schema:
            $ref: "#/definitions/PermissionGetResult"
      tags:
        - Permissions
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            resourceGroupName: rgname
            subscriptionId: subID
          responses:
            "200":
              body:
                nextLink: nextlink
                value:
                  - actions: []
                    notActions: []
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/permissions":
    get:
      description: Gets all permissions the caller has for a resource.
      operationId: Permissions_ListForResource
      parameters:
        - description: The name of the resource group containing the resource. The name is case insensitive.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The namespace of the resource provider.
          in: path
          name: resourceProviderNamespace
          required: true
          type: string
        - description: The parent resource identity.
          in: path
          name: parentResourcePath
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The resource type of the resource.
          in: path
          name: resourceType
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The name of the resource to get the permissions for.
          in: path
          name: resourceName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK - Returns an array of permissions.
          schema:
            $ref: "#/definitions/PermissionGetResult"
      tags:
        - Permissions
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            parentResourcePath: parentResourcePath
            resourceGroupName: rgname
            resourceName: resourceName
            resourceProviderNamespace: rpnamespace
            resourceType: resourceType
            subscriptionId: subId
          responses:
            "200":
              body:
                value:
                  - actions: []
                    notActions: []
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/roleAssignments":
    get:
      description: Gets role assignments for a resource.
      operationId: RoleAssignments_ListForResource
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The namespace of the resource provider.
          in: path
          name: resourceProviderNamespace
          required: true
          type: string
        - description: The parent resource identity.
          in: path
          name: parentResourcePath
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The resource type of the resource.
          in: path
          name: resourceType
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The name of the resource to get role assignments for.
          in: path
          name: resourceName
          required: true
          type: string
        - description: The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal.
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK - Returns an array of role assignments.
          schema:
            $ref: "#/definitions/RoleAssignmentListResult"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            parentResourcePath: parentResourcePath
            resourceGroupName: rgname
            resourceName: resourceName
            resourceProviderNamespace: resourceProviderNamespace
            resourceType: resourceType
            subscriptionId: subId
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                    name: raId
                    properties:
                      principalId: Pid
                      roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                      scope: /subscriptions/subId/resourcegroups/rgname
                    type: Microsoft.Authorization/roleAssignments
      x-ms-odata: "#/definitions/RoleAssignmentFilter"
      x-ms-pageable:
        nextLinkName: nextLink
  "/{roleAssignmentId}":
    delete:
      description: Deletes a role assignment.
      operationId: RoleAssignments_DeleteById
      parameters:
        - description: "The fully qualified ID of the role assignment, including the scope, resource name and resource type. Use the format, /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}. Example: /subscriptions/{subId}/resourcegroups/{rgname}//providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}."
          in: path
          name: roleAssignmentId
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns information about the role assignment.
          schema:
            $ref: "#/definitions/RoleAssignment"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            roleAssignmentId: roleAssignmentId
            scope: scope
          responses:
            "200":
              body:
                id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                name: roleassignmentId
                properties:
                  principalId: Pid
                  roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                  scope: /subscriptions/subId/resourcegroups/rgname
                type: Microsoft.Authorization/roleAssignments
    get:
      description: Gets a role assignment by ID.
      operationId: RoleAssignments_GetById
      parameters:
        - description: "The fully qualified ID of the role assignment, including the scope, resource name and resource type. Use the format, /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}. Example: /subscriptions/{subId}/resourcegroups/{rgname}//providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}."
          in: path
          name: roleAssignmentId
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns the role assignment.
          schema:
            $ref: "#/definitions/RoleAssignment"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            roleAssignmentId: roleassignmentId
          responses:
            "200":
              body:
                id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                name: roleassignmentId
                properties:
                  principalId: Pid
                  roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                  scope: /subscriptions/subId/resourcegroups/rgname
                type: Microsoft.Authorization/roleAssignments
    put:
      description: Creates a role assignment by ID.
      operationId: RoleAssignments_CreateById
      parameters:
        - description: "The fully qualified ID of the role assignment, including the scope, resource name and resource type. Use the format, /{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}. Example: /subscriptions/{subId}/resourcegroups/{rgname}//providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}."
          in: path
          name: roleAssignmentId
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: Parameters for the role assignment.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/RoleAssignmentCreateParameters"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "201":
          description: Created - Returns the role assignment.
          schema:
            $ref: "#/definitions/RoleAssignment"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            parameters:
              properties:
                principalId: d93a38bc-d029-4160-bfb0-fbda779ac214
                roleDefinitionId: /subscriptions/4004a9fd-d58e-48dc-aeb2-4a4aec58606f/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772
            roleAssignmentId: roleAssignmentId
            scope: scope
          responses:
            "201":
              body:
                id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                name: roleassignmentId
                properties:
                  principalId: Pid
                  roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                  scope: /subscriptions/subId/resourcegroups/rgname
                type: Microsoft.Authorization/roleAssignments
  "/{scope}/providers/Microsoft.Authorization/roleAssignments":
    get:
      description: Gets role assignments for a scope.
      operationId: RoleAssignments_ListForScope
      parameters:
        - description: The scope of the role assignments.
          in: path
          name: scope
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal.
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns an array of role assignments.
          schema:
            $ref: "#/definitions/RoleAssignmentListResult"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            scope: scope
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                    name: raId
                    properties:
                      principalId: Pid
                      roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                      scope: /subscriptions/subId/resourcegroups/rgname
                    type: Microsoft.Authorization/roleAssignments
      x-ms-odata: "#/definitions/RoleAssignmentFilter"
      x-ms-pageable:
        nextLinkName: nextLink
  "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}":
    delete:
      description: Deletes a role assignment.
      operationId: RoleAssignments_Delete
      parameters:
        - description: The scope of the role assignment to delete.
          in: path
          name: scope
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The name of the role assignment to delete.
          in: path
          name: roleAssignmentName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns information about the role assignment.
          schema:
            $ref: "#/definitions/RoleAssignment"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            roleAssignmentName: roleAssignmentName
            scope: scope
          responses:
            "200":
              body:
                id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                name: roleassignmentId
                properties:
                  principalId: Pid
                  roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                  scope: /subscriptions/subId/resourcegroups/rgname
                type: Microsoft.Authorization/roleAssignments
    get:
      description: Get the specified role assignment.
      operationId: RoleAssignments_Get
      parameters:
        - description: The scope of the role assignment.
          in: path
          name: scope
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The name of the role assignment to get.
          in: path
          name: roleAssignmentName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns information about the role assignment.
          schema:
            $ref: "#/definitions/RoleAssignment"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            roleAssignmentName: roleAssignmentName
            scope: scope
            subscriptionId: subId
          responses:
            "200":
              body:
                id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                name: raId
                properties:
                  principalId: Pid
                  roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                  scope: /subscriptions/subId/resourcegroups/rgname
                type: Microsoft.Authorization/roleAssignments
    put:
      description: Creates a role assignment.
      operationId: RoleAssignments_Create
      parameters:
        - description: The scope of the role assignment to create. The scope can be any REST resource instance. For example, use '/subscriptions/{subscription-id}/' for a subscription, '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}' for a resource group, and '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}' for a resource.
          in: path
          name: scope
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The name of the role assignment to create. It can be any valid GUID.
          in: path
          name: roleAssignmentName
          required: true
          type: string
        - description: Parameters for the role assignment.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/RoleAssignmentCreateParameters"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "201":
          description: Created - Returns information about the role assignment.
          schema:
            $ref: "#/definitions/RoleAssignment"
      tags:
        - RoleAssignments
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            parameters:
              properties:
                principalId: d93a38bc-d029-4160-bfb0-fbda779ac214
                roleDefinitionId: /subscriptions/4004a9fd-d58e-48dc-aeb2-4a4aec58606f/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772
            roleAssignmentName: roleAssignmentName
            scope: scope
          responses:
            "201":
              body:
                id: /subscriptions/subId/resourcegroups/rgname/providers/Microsoft.Authorization/roleAssignments/roleassignmentId
                name: roleassignmentId
                properties:
                  principalId: Pid
                  roleDefinitionId: /subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefinitionId
                  scope: /subscriptions/subId/resourcegroups/rgname
                type: Microsoft.Authorization/roleAssignments
  "/{scope}/providers/Microsoft.Authorization/roleDefinitions":
    get:
      description: Get all role definitions that are applicable at scope and above.
      operationId: RoleDefinitions_List
      parameters:
        - description: The scope of the role definition.
          in: path
          name: scope
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well.
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns an array of role definitions.
          schema:
            $ref: "#/definitions/RoleDefinitionListResult"
      tags:
        - RoleDefinitions
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            scope: scope
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/subID/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId
                    name: roleDefinitionId
                    properties:
                      assignableScopes:
                        - /subscriptions/subId
                      description: Role description
                      permissions:
                        - actions:
                            - action
                          notActions: []
                      roleName: Role name
                      type: roletype
                    type: Microsoft.Authorization/roleDefinitions
      x-ms-odata: "#/definitions/RoleDefinitionFilter"
      x-ms-pageable:
        nextLinkName: nextLink
  "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}":
    delete:
      description: Deletes a role definition.
      operationId: RoleDefinitions_Delete
      parameters:
        - description: The scope of the role definition.
          in: path
          name: scope
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The ID of the role definition to delete.
          in: path
          name: roleDefinitionId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns information about the role definition.
          schema:
            $ref: "#/definitions/RoleDefinition"
      tags:
        - RoleDefinitions
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2017-04-19
            roleDefinitionId: roleDefinitionId
            scope: scope
          responses:
            "200":
              body:
                id: /subscriptions/subID/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId
                name: roleDefinitionId
                properties:
                  assignableScopes:
                    - /subscriptions/subId
                  description: Role description
                  permissions:
                    - actions:
                        - action
                      notActions: []
                  roleName: Role name
                  type: roletype
                type: Microsoft.Authorization/roleDefinitions
    get:
      description: Get role definition by name (GUID).
      operationId: RoleDefinitions_Get
      parameters:
        - description: The scope of the role definition.
          in: path
          name: scope
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The ID of the role definition.
          in: path
          name: roleDefinitionId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns information about the role definition.
          schema:
            $ref: "#/definitions/RoleDefinition"
      tags:
        - RoleDefinitions
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            roleDefinitionId: roleDefinitionId
            scope: scope
          responses:
            "200":
              body:
                id: /subscriptions/subID/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId
                name: roleDefinitionId
                properties:
                  assignableScopes:
                    - /subscriptions/subId
                  description: Role description
                  permissions:
                    - actions:
                        - action
                      notActions: []
                  roleName: Role name
                  type: roletype
                type: Microsoft.Authorization/roleDefinitions
    put:
      description: Creates or updates a role definition.
      operationId: RoleDefinitions_CreateOrUpdate
      parameters:
        - description: The scope of the role definition.
          in: path
          name: scope
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - description: The ID of the role definition.
          in: path
          name: roleDefinitionId
          required: true
          type: string
        - description: The values for the role definition.
          in: body
          name: roleDefinition
          required: true
          schema:
            $ref: "#/definitions/RoleDefinition"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "201":
          description: OK - Returns information about the role definition.
          schema:
            $ref: "#/definitions/RoleDefinition"
      tags:
        - RoleDefinitions
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            body:
              roleDefinition:
                assignableScopes:
                  - /subscriptions/subId
                description: Role description
                id: /subscriptions/subID/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId
                name: roleDefinitionId
                permissions:
                  - actions:
                      - action
                    notActions: []
                roleName: Role name
                type: Microsoft.Authorization/roleDefinitions
            roleDefinition: {}
            roleDefinitionId: roleDefinitionId
            scope: scope
          responses:
            "201":
              body:
                id: /subscriptions/subID/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId
                name: roleDefinitionId
                properties:
                  assignableScopes:
                    - /subscriptions/subId
                  description: Role description
                  permissions:
                    - actions:
                        - action
                      notActions: []
                  roleName: Role name
                  type: roletype
                type: Microsoft.Authorization/roleDefinitions
definitions:
  Permission:
    description: Role definition permissions.
    properties:
      actions:
        description: Allowed actions.
        items:
          type: string
        type: array
      notActions:
        description: Denied actions.
        items:
          type: string
        type: array
  PermissionGetResult:
    description: Permissions information.
    properties:
      nextLink:
        description: The URL to use for getting the next set of results.
        type: string
      value:
        description: An array of permissions.
        items:
          $ref: "#/definitions/Permission"
        type: array
  ProviderOperation:
    description: Operation
    properties:
      description:
        description: The operation description.
        type: string
      displayName:
        description: The operation display name.
        type: string
      name:
        description: The operation name.
        type: string
      origin:
        description: The operation origin.
        type: string
      properties:
        description: The operation properties.
        type: object
  ProviderOperationsMetadata:
    description: Provider Operations metadata
    properties:
      displayName:
        description: The provider display name.
        type: string
      id:
        description: The provider id.
        type: string
      name:
        description: The provider name.
        type: string
      operations:
        description: The provider operations.
        items:
          $ref: "#/definitions/ProviderOperation"
        type: array
      resourceTypes:
        description: The provider resource types
        items:
          $ref: "#/definitions/ResourceType"
        type: array
      type:
        description: The provider type.
        type: string
  ProviderOperationsMetadataListResult:
    description: Provider operations metadata list
    properties:
      nextLink:
        description: The URL to use for getting the next set of results.
        type: string
      value:
        description: The list of providers.
        items:
          $ref: "#/definitions/ProviderOperationsMetadata"
        type: array
  ResourceType:
    description: Resource Type
    properties:
      displayName:
        description: The resource type display name.
        type: string
      name:
        description: The resource type name.
        type: string
      operations:
        description: The resource type operations.
        items:
          $ref: "#/definitions/ProviderOperation"
        type: array
  RoleAssignment:
    description: Role Assignments
    properties:
      id:
        description: The role assignment ID.
        readOnly: true
        type: string
      name:
        description: The role assignment name.
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/RoleAssignmentPropertiesWithScope"
        description: Role assignment properties.
      type:
        description: The role assignment type.
        readOnly: true
        type: string
  RoleAssignmentCreateParameters:
    description: Role assignment create parameters.
    properties:
      properties:
        $ref: "#/definitions/RoleAssignmentProperties"
        description: Role assignment properties.
    required:
      - properties
  RoleAssignmentFilter:
    description: Role Assignments filter
    properties:
      principalId:
        description: Returns role assignment of the specific principal.
        type: string
  RoleAssignmentListResult:
    description: Role assignment list operation result.
    properties:
      nextLink:
        description: The URL to use for getting the next set of results.
        type: string
      value:
        description: Role assignment list.
        items:
          $ref: "#/definitions/RoleAssignment"
        type: array
  RoleAssignmentProperties:
    description: Role assignment properties.
    properties:
      principalId:
        description: The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group.
        type: string
      roleDefinitionId:
        description: The role definition ID used in the role assignment.
        type: string
    required:
      - roleDefinitionId
      - principalId
  RoleAssignmentPropertiesWithScope:
    description: Role assignment properties with scope.
    properties:
      principalId:
        description: The principal ID.
        type: string
      roleDefinitionId:
        description: The role definition ID.
        type: string
      scope:
        description: The role assignment scope.
        type: string
  RoleDefinition:
    description: Role definition.
    properties:
      id:
        description: The role definition ID.
        readOnly: true
        type: string
      name:
        description: The role definition name.
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/RoleDefinitionProperties"
        description: Role definition properties.
      type:
        description: The role definition type.
        readOnly: true
        type: string
  RoleDefinitionFilter:
    description: Role Definitions filter
    properties:
      roleName:
        description: Returns role definition with the specific name.
        type: string
  RoleDefinitionListResult:
    description: Role definition list operation result.
    properties:
      nextLink:
        description: The URL to use for getting the next set of results.
        type: string
      value:
        description: Role definition list.
        items:
          $ref: "#/definitions/RoleDefinition"
        type: array
  RoleDefinitionProperties:
    description: Role definition properties.
    properties:
      assignableScopes:
        description: Role definition assignable scopes.
        items:
          type: string
        type: array
      description:
        description: The role definition description.
        type: string
      permissions:
        description: Role definition permissions.
        items:
          $ref: "#/definitions/Permission"
        type: array
      roleName:
        description: The role name.
        type: string
      type:
        description: The role type.
        type: string
x-ms-paths:
  "/{roleDefinitionId}?disambiguation_dummy":
    get:
      description: Gets a role definition by ID.
      operationId: RoleDefinitions_GetById
      parameters:
        - description: The fully qualified role definition ID. Use the format, /subscriptions/{guid}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} for subscription level role definitions, or /providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} for tenant level role definitions.
          in: path
          name: roleDefinitionId
          required: true
          type: string
          x-ms-skip-url-encoding: true
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK - Returns information about the role definition.
          schema:
            $ref: "#/definitions/RoleDefinition"
      tags:
        - RoleDefinitions
      x-ms-examples:
        GetConfigurations:
          parameters:
            api-version: 2015-07-01
            roleDefinitionId: roleDefinitionId
          responses:
            "200":
              body:
                id: /subscriptions/subID/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId
                name: roleDefinitionId
                properties:
                  assignableScopes:
                    - /subscriptions/subId
                  description: Role description
                  permissions:
                    - actions:
                        - action
                      notActions: []
                  roleName: Role name
                  type: roletype
                type: Microsoft.Authorization/roleDefinitions
