swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The service for managing third party addons.
  title: Azure Addons Resource Provider
  version: 2017-05-15
  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/addons/resource-manager/Microsoft.Addons/preview/2017-05-15/Addons.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: addons-Addons
  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
parameters:
  ApiVersionParameter:
    description: Client API version.
    in: query
    name: api-version
    required: true
    type: string
  CanonicalSupportPlanType:
    description: The Canonical support plan type.
    enum:
      - Essential
      - Standard
      - Advanced
    in: path
    name: planTypeName
    required: true
    type: string
    x-ms-enum:
      modelAsString: true
      name: PlanTypeName
    x-ms-parameter-location: method
  OperationResultsIdParameter:
    description: The id representing an async operation.
    in: path
    name: operationResultsId
    required: true
    type: string
    x-ms-parameter-location: method
  SubscriptionIdParameter:
    description: Subscription credentials that uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
    in: path
    name: subscriptionId
    required: true
    type: string
  SupportProviderName:
    description: The support plan type. For now the only valid type is "canonical".
    in: path
    name: providerName
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  /providers/Microsoft.Addons/operations:
    get:
      description: Lists all of the available Addons RP operations.
      operationId: Operations_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: List all the operations.
          schema:
            $ref: "#/definitions/OperationList"
        default:
          description: Unexpected error
          schema:
            $ref: "#/definitions/ErrorDefinition"
      tags:
        - Operations
      x-ms-examples:
        Operations_List:
          parameters:
            api-version: 2017-05-15
          responses:
            "200":
              body:
                - display:
                    description: Get the specified Canonical support plan state.
                    operation: Get Canonical support plan state
                    provider: Microsoft Addons
                    resource: supportPlanTypes
                  name: Microsoft.Addons/supportProviders/supportPlanTypes/read
                - display:
                    description: Adds the Canonical support plan type specified.
                    operation: Adds a Canonical support plan.
                    provider: Microsoft Addons
                    resource: supportPlanTypes
                  name: Microsoft.Addons/supportProviders/supportPlanTypes/write
                - display:
                    description: Removes the specified Canonical support plan
                    operation: Removes the Canonical support plan
                    provider: Microsoft Addons
                    resource: supportPlanTypes
                  name: Microsoft.Addons/supportProviders/supportPlanTypes/delete
                - display:
                    description: Gets the available Canonical support plan types as well as some extra metadata on their enabled status.
                    operation: Gets available Canonical support plan types.
                    provider: Microsoft Addons
                    resource: supportProviders
                  name: Microsoft.Addons/supportProviders/canonical/supportPlanTypes/get
                - display:
                    description: Register the specified subscription with Microsoft.Addons
                    operation: Register for Microsoft.Addons
                    provider: Microsoft Addons
                    resource: register
                  name: Microsoft.Addons/register/action
  "/subscriptions/{subscriptionId}/providers/Microsoft.Addons/supportProviders/{providerName}/supportPlanTypes":
    get:
      description: Returns the Canonical Support Plans as well as whether they are enabled or not for the subscription.
      operationId: CanonicalSupportPlanTypes_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/SupportProviderName"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/CanonicalSupportPlanStatus"
        default:
          description: |-
            '404' - 'Not Found'.
            '400' - 'Bad Request'
          schema:
            $ref: "#/definitions/ErrorDefinition"
      summary: Returns the Canonical Support Plans.
      tags:
        - CanonicalSupportPlanStatus
      x-ms-examples:
        CanonicalSupportPlanTypes_Get:
          parameters:
            api-version: 2017-05-15
            providerName: Canonical
            subscriptionId: d18d258f-bdba-4de1-8b51-e79d6c181d5e
          responses:
            "200":
              body:
                - enabled: true
                  supportPlanType: standard
                  willEmitOneTimeChargeIfReEnabled: true
                  willEmitOneTimeChargeWhenEnabled: false
                - enabled: false
                  supportPlanType: advanced
                  willEmitOneTimeChargeIfReEnabled: false
                  willEmitOneTimeChargeWhenEnabled: true
                - enabled: false
                  supportPlanType: essential
                  willEmitOneTimeChargeIfReEnabled: false
                  willEmitOneTimeChargeWhenEnabled: false
  "/subscriptions/{subscriptionId}/providers/Microsoft.Addons/supportProviders/{providerName}/supportPlanTypes/{planTypeName}":
    delete:
      description: Cancels the Canonical support plan of type {type} for the subscription.
      operationId: SupportPlanTypes_Delete
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/SupportProviderName"
        - $ref: "#/parameters/CanonicalSupportPlanType"
      responses:
        "202":
          description: Accepted
          headers: {}
          schema:
            $ref: "#/definitions/CanonicalSupportPlanResponseEnvelope"
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/ErrorDefinition"
      x-ms-examples:
        SupportPlanTypes_Delete:
          parameters:
            api-version: 2017-05-15
            planTypeName: Standard
            providerName: Canonical
            subscriptionId: d18d258f-bdba-4de1-8b51-e79d6c181d5e
          responses:
            "202":
              body:
                id: subscriptions/d18d258f-bdba-4de1-8b51-e79d6c181d5e/providers/Microsoft.Addons/supportProviders/canonical/supportPlanTypes/Standard
                name: Standard
                properties:
                  provisioningState: Cancelling
                type: Microsoft.Addons/supportProvider
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Returns whether or not the canonical support plan of type {type} is enabled for the subscription.
      operationId: SupportPlanTypes_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/SupportProviderName"
        - $ref: "#/parameters/CanonicalSupportPlanType"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/CanonicalSupportPlanResponseEnvelope"
        "404":
          description: Not Found
        default:
          description: |-
            '404' - 'Not Found'.
            '400' - 'Bad Request'
          schema:
            $ref: "#/definitions/ErrorDefinition"
      tags:
        - AddonDetails
      x-ms-examples:
        SupportPlanTypes_Get:
          parameters:
            api-version: 2017-05-15
            planTypeName: Standard
            providerName: Canonical
            subscriptionId: d18d258f-bdba-4de1-8b51-e79d6c181d5e
          responses:
            "200":
              body:
                id: subscriptions/d18d258f-bdba-4de1-8b51-e79d6c181d5e/providers/Microsoft.Addons/supportProviders/canonical/supportPlanTypes/Standard
                name: Standard
                properties:
                  provisioningState: Succeeded
                type: Microsoft.Addons/supportProvider
            "404": {}
    put:
      description: Creates or updates the Canonical support plan of type {type} for the subscription.
      operationId: SupportPlanTypes_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/SupportProviderName"
        - $ref: "#/parameters/CanonicalSupportPlanType"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/CanonicalSupportPlanResponseEnvelope"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/CanonicalSupportPlanResponseEnvelope"
        "404":
          description: Not Found
        default:
          description: |-
            '404' - 'Not Found'.
            '400' - 'Bad Request'
          schema:
            $ref: "#/definitions/ErrorDefinition"
      tags:
        - AddonDetails
      x-ms-examples:
        SupportPlanTypes_CreateOrUpdate:
          parameters:
            api-version: 2017-05-15
            planTypeName: Standard
            providerName: Canonical
            subscriptionId: d18d258f-bdba-4de1-8b51-e79d6c181d5e
          responses:
            "200":
              body:
                id: subscriptions/d18d258f-bdba-4de1-8b51-e79d6c181d5e/providers/Microsoft.Addons/supportProviders/canonical/supportPlanTypes/Standard
                name: Standard
                properties:
                  provisioningState: Succeeded
                type: Microsoft.Addons/supportProvider
            "201":
              body:
                id: subscriptions/d18d258f-bdba-4de1-8b51-e79d6c181d5e/providers/Microsoft.Addons/supportProviders/canonical/supportPlanTypes/Standard
                name: Standard
                properties:
                  provisioningState: Purchasing
                type: Microsoft.Addons/supportProvider
            "404": {}
      x-ms-long-running-operation: true
definitions:
  CanonicalSupportPlanProperties:
    description: The properties of the Canonical support plan.
    properties:
      provisioningState:
        description: The provisioning state of the resource.
        enum:
          - Succeeded
          - Failed
          - Cancelled
          - Purchasing
          - Downgrading
          - Cancelling
          - Upgrading
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProvisioningState
    type: object
  CanonicalSupportPlanResponseEnvelope:
    description: The status of the Canonical support plan.
    properties:
      id:
        description: The id of the ARM resource, e.g. "/subscriptions/{id}/providers/Microsoft.Addons/supportProvider/{supportProviderName}/supportPlanTypes/{planTypeName}".
        readOnly: true
        type: string
      name:
        description: The name of the Canonical support plan, i.e. "essential", "standard" or "advanced".
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/CanonicalSupportPlanProperties"
        description: Describes Canonical support plan type and status.
        type: object
        x-ms-client-flatten: true
      type:
        description: Microsoft.Addons/supportProvider
        readOnly: true
        type: string
    required:
      - properties
    type: object
    x-ms-azure-resource: true
  CanonicalSupportPlanStatus:
    description: Contains Canonical support plan status information.
    items:
      properties:
        enabled:
          description: Whether the support plan is enabled for this subscription.
          type: boolean
        supportPlanType:
          description: Support plan type.
          enum:
            - essential
            - standard
            - advanced
          type: string
          x-ms-enum:
            modelAsString: true
            name: SupportPlanType
        willEmitOneTimeChargeIfReEnabled:
          description: This indicates that when this support plan is cancelled and then enabled that AddonsRP will emit a one-time charge.
          type: boolean
        willEmitOneTimeChargeWhenEnabled:
          description: This indicates that when this support plan is enabled if AddonsRP will emit a one-time charge.
          type: boolean
    title: Canonical Support Plan Status
    type: array
  ErrorDefinition:
    description: Error description and code explaining why an operation failed.
    properties:
      code:
        description: Service specific error code which serves as the substatus for the HTTP error code.
        maximum: 600
        minimum: 100
        type: integer
      message:
        description: Description of the error.
        type: string
    required:
      - message
      - code
    title: Error
    type: object
  OperationList:
    description: List of supported operations.
    items:
      $ref: "#/definitions/OperationsDefinition"
    type: array
  OperationsDefinition:
    description: Definition object with the name and properties of an operation.
    properties:
      display:
        $ref: "#/definitions/OperationsDisplayDefinition"
        description: Display object with properties of the operation.
      name:
        description: Name of the operation.
        type: string
    type: object
  OperationsDisplayDefinition:
    description: Display object with properties of the operation.
    properties:
      description:
        description: Description of the operation.
        type: string
      operation:
        description: Short description of the operation.
        type: string
      provider:
        description: Resource provider of the operation.
        type: string
      resource:
        description: Resource for the operation.
        type: string
    type: object
