---
openapi: 3.0.4
info:
  title: CloudCockpit - Reseller API
  description: "# Introduction \n\n<p>This is the documentation for the **CloudCockpit
    API**. In here you can check which API endpoints are available for REST requests.
    Additionally you can also learn the request and response bodies expected for each
    request. </p>\nTo learn how to call any of this endpoints go to the Authentication
    guide tab.\n<br><br>"
  version: v1
servers:
- url: https://api.cloudcockpit.com/
paths:
  "/v1/AuditLogs":
    get:
      tags:
      - AuditLogs
      summary: List all audit logs
      description: "Returns a list of your audit logs. The audit logs are returned
        sorted by Timestamp, with the most recent audit logs appearing first.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: PageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: PageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: StartDate
        in: query
        description: The start date for the interval to filter the audit logs. The
          default value is 1 month ago.
        schema:
          type: string
          format: date-time
      - name: EndDate
        in: query
        description: The end date for the interval to filter the audit logs. The default
          value is current date time.
        schema:
          type: string
          format: date-time
      - name: Operations
        in: query
        description: 'A string containing the operations to filter by. This string
          is a list separated by |. ex: CreateOrder|CreateCustomer'
        schema:
          type: string
      - name: Status
        in: query
        description: 'The audit log status to filter by. Possible values: Processing,
          Succeded, Failed'
        schema:
          type: string
      - name: Reseller
        in: query
        description: The reseller name to search by. This field searches for a substring
          so the provided string as a whole must be a present in the desired reseller
          name.
        schema:
          type: string
      - name: Customer
        in: query
        description: The customer name to search by. This field searches for a substring
          so the provided string as a whole must be a present in the desired customer
          name.
        schema:
          type: string
      - name: resellerId
        in: query
        description: The reseller identifier. View the audit logs as the specified
          resellerId.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/AuditLogViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/AuditLogViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/AuditLogViewModelPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers":
    get:
      tags:
      - Customers
      summary: List all customers
      description: "Returns a list of your customers. The customers are returned sorted
        by the specified sortPropertyName.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: pageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: searchValue
        in: query
        description: The search query string. Required if searchField is provided.
          The search value has a maximum of 255 characters.
        schema:
          type: string
      - name: searchField
        in: query
        description: 'The field in which the search is performed. Possible values:
          Company.Name; Domain; InternalIdentifier and ProviderCustomerId. If searchValue
          was set but searchField wasn''t then by default the search will be done
          by Company.Name.'
        schema:
          type: string
      - name: sortPropertyName
        in: query
        description: 'The name of the property to sort the customers by. Possible
          values: Company.Name'
        schema:
          type: string
      - name: ascendingOrder
        in: query
        description: if set to `true` [ascending order].
        schema:
          type: boolean
      - name: resellerId
        in: query
        description: The reseller identifier. View only the customers that have relation
          with the specified resellerId.
        schema:
          type: string
          format: uuid
      - name: showDeleted
        in: query
        description: If true the deleted customers will be included.
        schema:
          type: boolean
          default: true
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    post:
      tags:
      - Customers
      summary: Create a customer
      description: "Creates a new Customer with the provided CustomerViewModel.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The customer info to create the customer.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CustomerViewModel"
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
                format: uuid
            application/json:
              schema:
                type: string
                format: uuid
            text/json:
              schema:
                type: string
                format: uuid
        '201':
          description: Created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
            application/json:
              schema:
                type: string
                format: uuid
            text/json:
              schema:
                type: string
                format: uuid
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}":
    get:
      tags:
      - Customers
      summary: Retrieve a customer
      description: Retrieves a Customer with the specified GUID identifier.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: GUID Unique identifier for the reseller. When this property is
          set all the customer info will be scoped to the relation beetween them.
          If the customer does not have a relationship with the provided reseller
          this request will return HTTP 403.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/CustomerViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/CustomerViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/CustomerViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/validations/domain":
    get:
      tags:
      - Customers
      summary: Validate a customer Microsoft domain
      description: "Checks if the provided Microsoft domain is valid (does not exist
        already in Microsoft) to create a new Microsoft customer. This request is
        only valid when using a Microsoft tenant/provider.\r\n**Available to the roles:**
        csp, reseller"
      parameters:
      - name: tenantId
        in: query
        description: The Microsoft tenant identifier to use in validation request
          to Microsoft.
        required: true
        schema:
          type: string
      - name: domain
        in: query
        description: The Microsoft domain to validate.
        required: true
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: boolean
            application/json:
              schema:
                type: boolean
            text/json:
              schema:
                type: boolean
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/validations/address":
    get:
      tags:
      - Customers
      summary: Validate a customer address
      description: "Checks if the provided address is valid to create a new customer.
        This request is only valid when using a Microsoft tenant/provider.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: tenantId
        in: query
        description: The Microsoft tenant identifier to use in validation request
          to Microsoft.
        required: true
        schema:
          type: string
      - name: addressLine1
        in: query
        description: The address first line.
        required: true
        schema:
          type: string
      - name: addressLine2
        in: query
        description: The address second line.
        schema:
          type: string
      - name: city
        in: query
        description: The address city.
        required: true
        schema:
          type: string
      - name: state
        in: query
        description: The address state.
        required: true
        schema:
          type: string
      - name: zipCode
        in: query
        description: The address zip code.
        required: true
        schema:
          type: string
      - name: country
        in: query
        description: The address country.
        required: true
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: boolean
            application/json:
              schema:
                type: boolean
            text/json:
              schema:
                type: boolean
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/internal-identifier":
    patch:
      tags:
      - Customers
      summary: Update a customer internal identifier
      description: "Updates the specified customer internal identifier. Since the
        internal identifier is specific by relationship the resellerId provided in
        the body will set the internal identifier for that relationship. If the ResellerId
        is not sent or is null, the relationship modified will be your relationship
        with the customer.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with two properties (InternalIdentifier, ResellerId).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateCustomerInternalIdentifierRequest"
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/account-info":
    patch:
      tags:
      - Customers
      summary: Update a customer account info
      description: "Updates the specified customer account info. Additionally this
        request contains the flag RetryFailedProviderCustomersFromCompanyInfo that
        if set to true will retry any provider customer that failed due to invalid
        company info.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with two properties (customer, retryFailedProviderCustomersFromCompanyInfo).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateCustomerAccountInfoRequest"
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/margins/{providerInstanceId}":
    patch:
      tags:
      - Customers
      summary: Updates a customer margins
      description: "Updates the specified customer margins. Since the margins are
        specific by relationship the resellerId provided in the body will set the
        margins for that relationship. If the ResellerId is not sent or is null, the
        relationship modified will be your relationship with the customer.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: path
        description: GUID Unique identifier for the provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateCustomerMarginsRequest"
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/microsoft-customer-domain":
    patch:
      tags:
      - Customers
      summary: Updates a Customer Microsoft domain
      description: "Updates the specified customer Microsoft domain. Since this resource
        is specific to the Microsoft provider, this request is only valid for provider
        customers that belong to a Microsoft tenant/provider.\nThis request can only
        be used in a provider customer that is failed with the customer creation error
        DomainExists. After updating the customer domain it's necessary to call the
        Retry Creation of a Provider Customer to attempt to create this provider customer
        again.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateMicrosoftCustomerDomainRequest"
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/provider-customers/{providerInstanceId}":
    post:
      tags:
      - Customers
      summary: Retry Creation of a Provider Customer
      description: "Retries the creation of a failed provider. The provided provider
        customer should be in the failed status, this request will fail otherwise.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: path
        description: GUID Unique identifier for the provider instance
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/microsoft-qualification":
    patch:
      tags:
      - Customers
      summary: Updates a Customer Microsoft Qualification
      description: "Updates the specified customer Microsoft qualification. Since
        this resource is specific to the Microsoft provider, this request is only
        valid for provider customers that belong to a Microsoft tenant/provider.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateCustomerQualificationRequest"
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/users":
    get:
      tags:
      - Customers
      summary: List all Customer users
      description: Returns a list of your customer users for a specified customer.
        The customer users are returned sorted by the specified sortPropertyName.
        Since this resource is specific to the Microsoft provider, this request is
        only valid for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: searchValue
        in: query
        description: The search query string.
        schema:
          type: string
      - name: sortPropertyName
        in: query
        description: 'The name of the property to sort the customers by. Possible
          values: DisplayName, UserPrincipalName'
        schema:
          type: string
      - name: ascendingOrder
        in: query
        description: if set to `true` [ascending order].
        schema:
          type: boolean
      - name: seekOperation
        in: query
        description: 'The seek operation type. The default value is Next. Possible
          values: Next, Previous, First, Last and PageIndex'
        schema:
          type: string
      - name: resellerId
        in: query
        description: GUID Unique identifier for the reseller. View only the customers
          that have relation with the specified resellerId.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModelPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    post:
      tags:
      - Customers
      summary: Create a customer user
      description: Creates a new Customer user with the provided CustomerUserViewModel.
        Since this resource is specific to the Microsoft provider, this request is
        only valid for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with two properties (providerInstanceId, customerUser).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateCustomerUserRequest"
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/user-roles":
    get:
      tags:
      - Customers
      summary: Gets all user roles of a customer.
      description: Returns a list of all user roles of a specific customer. Since
        this resource is specific to the Microsoft provider, this request is only
        valid for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerUserRoleViewModel"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerUserRoleViewModel"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerUserRoleViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/licenses":
    get:
      tags:
      - Customers
      summary: List all licenses for a customer
      description: Returns a list of licenses for a specific customer. Since this
        resource is specific to the Microsoft provider, this request is only valid
        for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: GUID Unique identifier for the resellerId. By setting this property
          the licenses will be scoped to that relationship. If user is reseller this
          property will be auto-populate.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerLicenseViewModel"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerLicenseViewModel"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerLicenseViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/domains":
    get:
      tags:
      - Customers
      summary: List all domains for a customer
      description: Returns a list of domains for a specific customer. Since this resource
        is specific to the Microsoft provider, this request is only valid for provider
        customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: string
            application/json:
              schema:
                type: array
                items:
                  type: string
            text/json:
              schema:
                type: array
                items:
                  type: string
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/mca":
    get:
      tags:
      - Customers
      summary: Retrieve Microsoft Customer Agreements
      description: "**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: query
        description: Optional GUID to filter by customer.
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: Optional GUID to filter by provider instance.
        schema:
          type: string
          format: uuid
      - name: status
        in: query
        description: 'Optional status to filter agreements. Valid values: required,
          linkgenerated, customeraccepted, linkexpired, agreementcreated (case insensitive).'
        schema:
          type: string
      - name: searchValue
        in: query
        description: Optional search value to filter by company name.
        schema:
          type: string
      - name: pageNumber
        in: query
        description: The page number for pagination.
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The page size for pagination.
        schema:
          type: integer
          format: int32
      - name: sortPropertyName
        in: query
        description: 'The property name to sort by. Valid values: CompanyName, Status.
          Default is Status.'
        schema:
          type: string
      - name: excludeCompliant
        in: query
        description: Whether we should retrieve agreements with agreementcreated status
          or not
        schema:
          type: boolean
          default: false
      - name: ascendingOrder
        in: query
        description: Whether to sort in ascending order. Default is false (descending).
        schema:
          type: boolean
          default: false
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModelPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/mca/status-counts":
    get:
      tags:
      - Customers
      summary: Gets the count of Microsoft Customer Agreements grouped by status
      description: "**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: query
        description: Optional customer identifier to filter by
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: Optional provider instance identifier to filter by
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: object
                additionalProperties:
                  type: integer
                  format: int32
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: integer
                  format: int32
            text/json:
              schema:
                type: object
                additionalProperties:
                  type: integer
                  format: int32
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/users/{customerUserId}/user-roles":
    patch:
      tags:
      - Customers
      summary: Updates the roles of a customer user
      description: Updates the roles of a customer user. Since this resource is specific
        to the Microsoft provider, this request is only valid for provider customers
        that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerUserId
        in: path
        description: GUID Unique identifier for the customer user.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with two properties (providerInstanceId, roleIds).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateCustomerUserRolesRequest"
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    get:
      tags:
      - Customers
      summary: List the roles of a customer user.
      description: Returns the list of user roles of a specific customer user. Since
        this resource is specific to the Microsoft provider, this request is only
        valid for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerUserId
        in: path
        description: GUID Unique identifier for the customer user.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerUserRoleViewModel"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerUserRoleViewModel"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CustomerUserRoleViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/users/{customerUserId}/licenses":
    patch:
      tags:
      - Customers
      summary: Updates a customer user licenses
      description: Updates the specified customer user licenses. Since this resource
        is specific to the Microsoft provider, this request is only valid for provider
        customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerUserId
        in: path
        description: GUID Unique identifier for the customer user.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with two properties (providerInstanceId, licenses).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateCustomerUserLicensesRequest"
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    get:
      tags:
      - Customers
      summary: List all license sku Ids for a Customer user
      description: Returns a list of license sku ids for a specific customer user.
        Since this resource is specific to the Microsoft provider, this request is
        only valid for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerUserId
        in: path
        description: GUID Unique identifier for the customer user.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: string
                  format: uuid
            application/json:
              schema:
                type: array
                items:
                  type: string
                  format: uuid
            text/json:
              schema:
                type: array
                items:
                  type: string
                  format: uuid
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/users/{customerUserId}":
    get:
      tags:
      - Customers
      summary: Retrieve a Customer user
      description: Retrieves a Customer user with the specified GUID identifier.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerUserId
        in: path
        description: GUID Unique identifier for the customer user.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/CustomerUserViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    patch:
      tags:
      - Customers
      summary: Updates a customer user info
      description: Updates the specified customer user info. Since this resource is
        specific to the Microsoft provider, this request is only valid for provider
        customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerUserId
        in: path
        description: GUID Unique identifier for the customer user.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with two properties (providerInstanceId, customerUser).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateCustomerUserRequest"
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    delete:
      tags:
      - Customers
      summary: Delete a Customer user
      description: Deletes a customer user with the provided GUID identifier. Since
        this resource is specific to the Microsoft provider, this request is only
        valid for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerUserId
        in: path
        description: GUID Unique identifier for the customer user.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with one property (providerInstanceId).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/DeleteCustomerUserRequest"
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/users/{customerUserId}/reset-password":
    patch:
      tags:
      - Customers
      summary: Resets a customer user password
      description: Resets the specified customer user password. Since this resource
        is specific to the Microsoft provider, this request is only valid for provider
        customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerUserId
        in: path
        description: GUID Unique identifier for the customer user.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the reset. This body
          contains an JSON Object with two properties (providerInstanceId, customerUser).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateCustomerUserRequest"
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/provider-instances":
    post:
      tags:
      - Customers
      summary: Add provider instance to customer.
      description: "**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: The customer id.
        required: true
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: |-
          The id of the reseller. Should not be passed if a reseller performs the request.
          A CSP can set the id of a reseller to add a provider instance between that reseller and a customer.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request with the information of the provider instance to
          add to the customer.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/AddProviderInstanceToCustomerRequest"
      responses:
        '201':
          description: Created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
            application/json:
              schema:
                type: string
                format: uuid
            text/json:
              schema:
                type: string
                format: uuid
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/provider-instances/{providerInstanceId}/mca":
    get:
      tags:
      - Customers
      summary: Get customer MCA
      description: "Gets the Microsoft Customer Agreement (MCA) information for the
        customer in the given provider instance. This request only applies to Microsoft
        provider instances.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: The customer id.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: path
        description: The id of the provider instance where the MCA is being requested.
          Should be a Microsoft provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/provider-instances/{providerInstanceId}/mca/status":
    post:
      tags:
      - Customers
      summary: Manually refresh customer MCA status
      description: "Manually updates the Microsoft Customer Agreement (MCA) status
        for the customer in the given provider instance. This will get the latest
        MCA status from Microsoft and update it in the portal. This action is logged
        in the audit log.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: The customer id.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: path
        description: The id of the provider instance where the MCA is being requested.
          Should be a Microsoft provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/StartMcaAttestationViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/StartMcaAttestationViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/StartMcaAttestationViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/provider-instances/{providerInstanceId}/mca/attestation":
    post:
      tags:
      - Customers
      summary: Start customer MCA attestation
      description: "Starts the MCA attestation process for the customer in the given
        provider instance. Only applies to MCAs where the status is either not started
        or expired.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: The customer id.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: path
        description: The id of the provider instance where the MCA is being requested.
          Should be a Microsoft provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The attestation data.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/StartMcaAttestationViewModel"
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/provider-instances/{providerInstanceId}/mca/agreement":
    post:
      tags:
      - Customers
      summary: Create customer MCA agreement
      description: "Creates a new MCA agreement for the customer in the given provider
        instance. Customer must have accepted the existing attestation in the portal.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: The customer id.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: path
        description: The id of the provider instance where the MCA agreement is being
          created. Should be a Microsoft provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/delegated-admin-relationships":
    get:
      tags:
      - Gdap
      summary: List all GDAP relationships for a customer
      description: Returns a list of GDAP relationships for a specific customer. Since
        this resource is specific to the Microsoft provider, this request is only
        valid for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/DelegatedAdminRelation"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/DelegatedAdminRelation"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/DelegatedAdminRelation"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    post:
      tags:
      - Gdap
      summary: Create a delegated admin relationship
      description: "Create a delegated admin relationship. Since this resource is
        specific to the Microsoft provider, this request is only valid for provider
        customers that belong to a Microsoft tenant/provider.\r\n**Available to the
        roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. Optional only needed
          if you want to associate with a customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with four properties (providerInstanceId, displayName,
          AutoExtendEnabled and CustomSelectedGdapRolesIds).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateDelegatedAdminRelationshipRequest"
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/delegated-admin-relationships":
    post:
      tags:
      - Gdap
      summary: Create a delegated admin relationship
      description: "Create a delegated admin relationship. Since this resource is
        specific to the Microsoft provider, this request is only valid for provider
        customers that belong to a Microsoft tenant/provider.\r\n**Available to the
        roles:** csp, reseller"
      parameters:
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with four properties (providerInstanceId, displayName,
          AutoExtendEnabled and CustomSelectedGdapRolesIds).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateDelegatedAdminRelationshipRequest"
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/delegated-admin-relationships/{relationshipId}/access-assignments":
    get:
      tags:
      - Gdap
      summary: Get access assignments of a delegated admin relationship
      description: Gets the list of access assignments on the given relationship.
        Only the access assignments associated with the configured security group
        are returned.
      parameters:
      - name: relationshipId
        in: path
        description: Id of the relationship
        required: true
        schema:
          type: string
      - name: providerInstanceId
        in: query
        description: Id of the provider instance where relationship is created
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/DelegatedAdminAccessAssignmentViewModel"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/DelegatedAdminAccessAssignmentViewModel"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/DelegatedAdminAccessAssignmentViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - bearerAuth: []
    post:
      tags:
      - Gdap
      summary: Create access assignment
      description: "Links the given relationship with the security group configured
        in the portal. Relationship must be in active state and must not have an access
        assignment with the security group.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: relationshipId
        in: path
        description: Id of the relationship
        required: true
        schema:
          type: string
      - name: providerInstanceId
        in: query
        description: Id of the provider instance where relationship is created
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - bearerAuth: []
  "/v1/Customers/relationship-acceptance":
    get:
      tags:
      - Gdap
      summary: Retrieve relationship acceptance link for a Customer
      description: "Gets a link to establish a relationship with a customer.\nIf a
        resellerId is provided, the relationship is established between the customer
        and that reseller. Otherwise, the relationship is between the customer and
        CSP.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: GUID Unique identifier for the reseller. If user is a reseller
          this property will be auto-populated.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
            application/json:
              schema:
                type: string
            text/json:
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Customers/{customerId}/delegated-admin-relationships/{relationshipId}":
    patch:
      tags:
      - Gdap
      summary: Update a customer relationship
      description: "Updates a delegated admin relationship. Since this resource is
        specific to the Microsoft provider, this request is only valid for provider
        customers that belong to a Microsoft tenant/provider.\r\n**Available to the
        roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: relationshipId
        in: path
        required: true
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the update. This body
          contains an JSON Object with two properties (providerInstanceId, AutoExtendEnabled).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateCustomerRelationshipRequest"
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Invoices":
    get:
      tags:
      - Invoices
      summary: Gets the invoices.
      description: Returns a list of invoices. The invoices are returned ordered by
        the "Timestamp" property and by the boolean value sent in the ascendingOrder
        parameter. The ascending order might be true or false.
      parameters:
      - name: providerInstanceId
        in: query
        description: The provider instance id.
        required: true
        schema:
          type: string
          format: uuid
      - name: invoiceType
        in: query
        description: 'The invoice type. Possible values: onetime, usage, license and
          dailyratedusage.'
        required: true
        schema:
          type: string
      - name: pageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        required: true
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        required: true
        schema:
          type: integer
          format: int32
      - name: ascendingOrder
        in: query
        description: If set to `true` [ascending order].
        schema:
          type: boolean
      - name: resellerId
        in: query
        description: The id of a specific reseller. If you are a CSP you can set this
          to filter by reseller, otherwise don't send a value.
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        description: The id of a specific customer. If you are a CSP or a reseller
          you can set this to filter by customer, otherwise don't send a value.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The request completed with success and returns the invoices.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InvoiceViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/InvoiceViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/InvoiceViewModelPagedCollection"
        '400':
          description: There is an error in the parameters sent in the request.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
        '401':
          description: Please use a valid authorization token.
        '403':
          description: You don't have enough permissions to access this information.
        '500':
          description: A server error has happened during the request. Please try
            again later or contact support.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
      security:
      - bearerAuth: []
  "/v1/Invoices/{id}/reseller-onetime-lineitems":
    get:
      tags:
      - Invoices
      summary: Gets all the invoice one time line items of an invoice for resellers,
        using pagination.
      description: "Returns a subset of the invoice one time line items of an invoice
        on each request for reseller. Pass the continuation token in the headers to
        obtain the remaining items.\r\n**Available to the roles:** reseller"
      parameters:
      - name: id
        in: path
        description: The id of the invoice.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageSize
        in: query
        description: The number of items to be returned at max per page. The size
          can range between 1 and 2000.
        required: true
        schema:
          type: integer
          format: int32
      - name: X-ContinuationToken
        in: header
        description: This header should not be set when the first page is desired.
          For the second page and onwards, pass the continuation token received in
          the response body.
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The request completed with success and returns the line items
            and the continuation token (if applicable).
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InvoiceOneTimeLineItemResellerViewModelSeekBasedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/InvoiceOneTimeLineItemResellerViewModelSeekBasedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/InvoiceOneTimeLineItemResellerViewModelSeekBasedCollection"
        '400':
          description: There is an error in the parameters sent in the request.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
        '401':
          description: Please use a valid authorization token.
        '403':
          description: You don't have enough permissions to access this information.
        '404':
          description: The requested onetime invoice does not exist. Any line items
            previously obtained should be discarded.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
        '500':
          description: A server error has happened during the request. Please try
            again later or contact support.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
      security:
      - bearerAuth: []
  "/v1/Invoices/{id}/reseller-usage-lineitems":
    get:
      tags:
      - Invoices
      summary: Gets all the invoice usage line items of an invoice for resellers,
        using pagination.
      description: "Returns a subset of the invoice usage items of an invoice on each
        request for the reseller. Pass the continuation token in the headers to obtain
        the remaining items.\r\n**Available to the roles:** reseller"
      parameters:
      - name: id
        in: path
        description: The id of the invoice.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageSize
        in: query
        description: The number of items to be returned at max per page. The size
          can range between 1 and 2000.
        required: true
        schema:
          type: integer
          format: int32
      - name: X-ContinuationToken
        in: header
        description: This header should not be set when the first page is desired.
          For the second page and onwards, pass the continuation token received in
          the response body.
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The request completed with success and returns the line items
            and the continuation token (if applicable).
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InvoiceUsageLineItemResellerViewModelSeekBasedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/InvoiceUsageLineItemResellerViewModelSeekBasedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/InvoiceUsageLineItemResellerViewModelSeekBasedCollection"
        '400':
          description: There is an error in the parameters sent in the request.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
        '401':
          description: Please use a valid authorization token.
        '403':
          description: You don't have enough permissions to access this information.
        '404':
          description: The requested usage invoice does not exist. Any line items
            previously obtained should be discarded.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
        '500':
          description: A server error has happened during the request. Please try
            again later or contact support.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
      security:
      - bearerAuth: []
  "/v1/Invoices/{id}/reseller-dailyratedusage-lineitems":
    get:
      tags:
      - Invoices
      summary: Gets all the invoice daily rated usage line items of an invoice for
        a reseller, using pagination.
      description: "Returns a subset of the invoice daily rated usage items of an
        invoice on each request for the reseller. Pass the continuation token in the
        headers to obtain the remaining items.\r\n**Available to the roles:** reseller"
      parameters:
      - name: id
        in: path
        description: The id of the invoice.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageSize
        in: query
        description: The number of items to be returned at max per page. The size
          can range between 1 and 2000.
        required: true
        schema:
          type: integer
          format: int32
      - name: X-ContinuationToken
        in: header
        description: This header should not be set when the first page is desired.
          For the second page and onwards, pass the continuation token received in
          the response body.
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The request completed with success and returns the line items
            and the continuation token (if applicable).
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemResellerViewModelSeekBasedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemResellerViewModelSeekBasedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemResellerViewModelSeekBasedCollection"
        '400':
          description: There is an error in the parameters sent in the request.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
        '401':
          description: Please use a valid authorization token.
        '403':
          description: You don't have enough permissions to access this information.
        '404':
          description: The requested daily rated usage invoice does not exist. Any
            line items previously obtained should be discarded.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
        '500':
          description: A server error has happened during the request. Please try
            again later or contact support.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
      security:
      - bearerAuth: []
  "/v1/Invoices/{id}/reseller-license-lineitems":
    get:
      tags:
      - Invoices
      summary: Gets all the invoice license line items of an invoice for resellers,
        using pagination.
      description: "Returns a subset of the invoice license line items of an invoice
        on each request for reseller. Pass the continuation token in the headers to
        obtain the remaining items.\r\n**Available to the roles:** reseller"
      parameters:
      - name: id
        in: path
        description: The id of the invoice.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageSize
        in: query
        description: The number of items to be returned at max per page. The size
          can range between 1 and 2000.
        required: true
        schema:
          type: integer
          format: int32
      - name: X-ContinuationToken
        in: header
        description: This header should not be set when the first page is desired.
          For the second page and onwards, pass the continuation token received in
          the response body.
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The request completed with success and returns the line items
            and the continuation token (if applicable).
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InvoiceLicenseLineItemResellerViewModelSeekBasedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/InvoiceLicenseLineItemResellerViewModelSeekBasedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/InvoiceLicenseLineItemResellerViewModelSeekBasedCollection"
        '400':
          description: There is an error in the parameters sent in the request.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
        '401':
          description: Please use a valid authorization token.
        '403':
          description: You don't have enough permissions to access this information.
        '404':
          description: The requested onetime invoice does not exist. Any line items
            previously obtained should be discarded.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
        '500':
          description: A server error has happened during the request. Please try
            again later or contact support.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
      security:
      - bearerAuth: []
  "/v1/Invoices/{id}/customer-onetime-lineitems":
    get:
      tags:
      - Invoices
      summary: Gets all the invoice one time line items of an invoice for a customer,
        using pagination.
      description: Returns a subset of the invoice one time line items of an invoice
        on each request for the customer. Pass the continuation token in the headers
        to obtain the remaining items.
      parameters:
      - name: id
        in: path
        description: The id of the invoice.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageSize
        in: query
        description: The number of items to be returned at max per page. The size
          can range between 1 and 2000.
        required: true
        schema:
          type: integer
          format: int32
      - name: resellerId
        in: query
        description: The id of a specific reseller. If you are a CSP you can set this
          to filter by reseller, otherwise don't send a value.
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        description: The id of the customer. Use this if you are a CSP or a reseller
          to filter by customer. Otherwise this should be not set.
        schema:
          type: string
          format: uuid
      - name: X-ContinuationToken
        in: header
        description: This header should not be set when the first page is desired.
          For the second page and onwards, pass the continuation token received in
          the response body.
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The request completed with success and returns the line items
            and the continuation token (if applicable).
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InvoiceOneTimeLineItemCustomerViewModelSeekBasedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/InvoiceOneTimeLineItemCustomerViewModelSeekBasedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/InvoiceOneTimeLineItemCustomerViewModelSeekBasedCollection"
        '400':
          description: There is an error in the parameters sent in the request.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
        '401':
          description: Please use a valid authorization token.
        '403':
          description: You don't have enough permissions to access this information.
        '404':
          description: The requested onetime invoice does not exist. Any line items
            previously obtained should be discarded.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
        '500':
          description: A server error has happened during the request. Please try
            again later or contact support.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
      security:
      - bearerAuth: []
  "/v1/Invoices/{id}/customer-license-lineitems":
    get:
      tags:
      - Invoices
      summary: Gets all the invoice license line items of an invoice for a customer,
        using pagination.
      description: Returns a subset of the invoice license line items of an invoice
        on each request for the customer. Pass the continuation token in the headers
        to obtain the remaining items.
      parameters:
      - name: id
        in: path
        description: The id of the invoice.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageSize
        in: query
        description: The number of items to be returned at max per page. The size
          can range between 1 and 2000.
        required: true
        schema:
          type: integer
          format: int32
      - name: resellerId
        in: query
        description: The id of a specific reseller. If you are a CSP you can set this
          to filter by reseller, otherwise don't send a value.
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        description: The id of the customer. Use this if you are a CSP or a reseller
          to filter by customer. Otherwise this should be not set.
        schema:
          type: string
          format: uuid
      - name: X-ContinuationToken
        in: header
        description: This header should not be set when the first page is desired.
          For the second page and onwards, pass the continuation token received in
          the response body.
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The request completed with success and returns the line items
            and the continuation token (if applicable).
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InvoiceLicenseLineItemCustomerViewModelSeekBasedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/InvoiceLicenseLineItemCustomerViewModelSeekBasedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/InvoiceLicenseLineItemCustomerViewModelSeekBasedCollection"
        '400':
          description: There is an error in the parameters sent in the request.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/BadRequestErrorResponse"
        '401':
          description: Please use a valid authorization token.
        '403':
          description: You don't have enough permissions to access this information.
        '404':
          description: The requested license invoice does not exist. Any line items
            previously obtained should be discarded.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/NotFoundErrorResponse"
        '500':
          description: A server error has happened during the request. Please try
            again later or contact support.
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            application/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
            text/json:
              schema:
                "$ref": "#/components/schemas/InternalServerErrorResponse"
      security:
      - bearerAuth: []
  "/v1/Offers":
    get:
      tags:
      - Offers
      summary: List all offers
      description: Returns a list the offers in the tenant. The offers are returned
        sorted by SortPropertyName. If a customer is not provided in the query params
        the offer prices will not be scoped to one market. To view the offer prices
        for a certain customer/market provide the desired customer.
      parameters:
      - name: PageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: PageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: SortPropertyName
        in: query
        description: 'The name of the property to sort the customers by. Possible
          values: Name'
        schema:
          type: string
      - name: AscendingOrder
        in: query
        description: The value indicating whether to sort in ascending order. If set
          to `true` [ascending order].
        schema:
          type: boolean
      - name: OfferTypes
        in: query
        description: 'A string containing the OfferTypes to filter by. This string
          is a list separated by |. ex: License|AzurePlan'
        required: true
        schema:
          type: string
      - name: ProviderInstanceId
        in: query
        description: The GUID identifier for the provider instance.
        schema:
          type: string
          format: uuid
      - name: SearchValue
        in: query
        description: The search query string.
        schema:
          type: string
      - name: SearchField
        in: query
        description: 'The field to search in. Possible values: Name or ProviderOfferId'
        schema:
          type: string
      - name: Segment
        in: query
        description: 'The string indicating which segment to get the offers from.
          Possible values: Commercial, Education, Government or NonProfit'
        required: true
        schema:
          type: string
      - name: CustomerId
        in: query
        description: GUID Unique identifier for the customer. If none is set the offers
          prices will no be scoped to one market, for normal use set this property.
          When the user is a customer this property will be auto-populated.
        schema:
          type: string
          format: uuid
      - name: ResellerId
        in: query
        description: GUID Unique identifier for the reseller. When this property is
          set the offer prices will have the corresponding margins applied. Only usable
          for CSPs.
        schema:
          type: string
          format: uuid
      - name: IncludeDeleted
        in: query
        description: The value indicating whether to include deleted offers in the
          offers list. Deprecated offers will also appear as deleted in the list.
        schema:
          type: boolean
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/OfferListItemPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/OfferListItemPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/OfferListItemPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Offers/{id}":
    get:
      tags:
      - Offers
      summary: Retrieve an offer
      description: Retrieves an offer with the specified GUID identifier.
      parameters:
      - name: id
        in: path
        description: GUID Unique identifier for the offer.
        required: true
        schema:
          type: string
          format: uuid
      - name: providerInstanceId
        in: query
        description: GUID Unique identifier for the provider instance.
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        description: GUID Unique identifier for the customer.
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: GUID Unique identifier for the reseller. When this property is
          set the offer price will have the corresponding margins applied. Only usable
          for CSPs.
        schema:
          type: string
          format: uuid
      - name: segment
        in: query
        description: 'The string indicating which segment to get the offers for. Possible
          values: Commercial, Education, Government or NonProfit'
        required: true
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/OfferViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/OfferViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/OfferViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Orders":
    post:
      tags:
      - Orders
      summary: Create an Order
      description: Creates a new Order with the provided OrderViewModel and returns
        a model with the created order id.
      parameters:
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The order info to create the order.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/OrderViewModel"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/CreateOrderResponseViewModel"
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Orders/customers/{customerId}":
    get:
      tags:
      - Orders
      summary: List all active Orders
      description: Returns a list of this customers active orders. This includes all
        orders that do not have the status Completed. The orders are returned sorted
        by the specified created date, with the most recent orders appearing first.
      parameters:
      - name: customerId
        in: path
        description: The GUID identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: sortPropertyName
        in: query
        description: The name of the property to sort the orders by. Currently no
          possible values.
        schema:
          type: string
      - name: ascendingOrder
        in: query
        description: if set to `true` [ascending order].
        schema:
          type: boolean
      - name: resellerId
        in: query
        description: The GUID identifier for the reseller.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/OrderViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/OrderViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/OrderViewModelPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Providers/Instances":
    get:
      tags:
      - Providers
      summary: List all Provider Instances
      description: Returns a list of the provider instances in the tenant. The provider
        instances are returned sorted by provider.
      parameters:
      - name: pageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ProviderInstanceViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/ProviderInstanceViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/ProviderInstanceViewModelPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/Resellers/{resellerId}":
    get:
      tags:
      - Resellers
      summary: Retrieve a reseller
      description: "Retrieves a Reseller with the specified GUID identifier.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: resellerId
        in: path
        description: GUID Unique identifier for the reseller.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ResellerViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ResellerViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ResellerViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions":
    get:
      tags:
      - Subscriptions
      summary: List all customer Subscriptions
      description: Returns a list of subscriptions for the provided customer. The
        subscriptions are returned sorted by the specified sortPropertyName.
      parameters:
      - name: customerId
        in: path
        description: The GUID identifier for the customer. The subscriptions are listed
          only the selected customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: pageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: searchValue
        in: query
        description: The search query string.
        schema:
          type: string
      - name: sortPropertyName
        in: query
        description: 'The name of the property to sort the customers by. Possible
          values: Offer.Name'
        schema:
          type: string
      - name: ascendingOrder
        in: query
        description: if set to `true` [ascending order].
        schema:
          type: boolean
      - name: subscriptionStatuses
        in: query
        description: 'A string containing the SubscriptionStatuses to filter by. This
          string is a list separated by |. ex: Active|Suspended'
        schema:
          type: string
      - name: subscriptionOfferTypes
        in: query
        schema:
          type: string
      - name: resellerId
        in: query
        description: The reseller identifier. View only the customer subscriptions
          for this reseller.
        schema:
          type: string
          format: uuid
      - name: offerId
        in: query
        description: The offer identifier to search by an offer if specified.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/SubscriptionListItemPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/SubscriptionListItemPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/SubscriptionListItemPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}":
    get:
      tags:
      - Subscriptions
      summary: Retrieve a Subscription
      description: Retrieves a Subscription with the specified GUID identifier.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/SubscriptionViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/SubscriptionViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/SubscriptionViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    delete:
      tags:
      - Subscriptions
      summary: Cancel a Subscription.
      description: Cancels a customer subscription. This process is asynchronous,
        therefore it will start executing after the request is submitted and may take
        some time.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    patch:
      tags:
      - Subscriptions
      summary: Update a Subscription
      description: Updates the specified subscription. This process is asynchronous,
        therefore it will start executing after the request is submitted and may take
        some time.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The subscription base info to update the existent subscription.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/SubscriptionBaseInfoViewModel"
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '409':
          description: Conflict
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/suspend":
    post:
      tags:
      - Subscriptions
      summary: Suspend a Subscription.
      description: Suspends a customer subscription. This process is asynchronous,
        therefore it will start executing after the request is submitted and may take
        some time.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/reactivate":
    post:
      tags:
      - Subscriptions
      summary: Reactivate a Subscription.
      description: Reactivates a customer subscription. This process is asynchronous,
        therefore it will start executing after the request is submitted and may take
        some time.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/price-margin":
    patch:
      tags:
      - Subscriptions
      summary: Update a Subscription price margin
      description: "Updates the specified subscription price margin.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The price margin to update the existent subscription.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/PriceMargin"
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/internal-id":
    patch:
      tags:
      - Subscriptions
      summary: Update a Subscription internal id
      description: "Updates the specified subscription internal id.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The internal id to update the existent subscription. This may
          be up to 255 characters.
        content:
          application/json:
            schema:
              type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/po-number":
    patch:
      tags:
      - Subscriptions
      summary: Update a Subscription PO number
      description: "Updates the specified subscription PO number. Allowed for the
        CSP, the reseller or the customer associated to the subscription.\r\n**Available
        to the roles:** csp, reseller, customer"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The PO number to update the existent subscription. This may be
          up to 255 characters.
        content:
          application/json:
            schema:
              type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/azure-entitlements":
    get:
      tags:
      - Subscriptions
      summary: List all azure entitlements Subscriptions
      description: Returns a list of azure entitlements subscriptions for the provided
        parent subscription id.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: The GUID identifier for the parent subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: The reseller identifier. View only the customer subscriptions
          for this reseller.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionListItem"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionListItem"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionListItem"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/eligible-transitions":
    get:
      tags:
      - Subscriptions
      summary: List Subscription eligible transitions
      description: Returns a list of eligible transitions for a specified subscription.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionTransitionViewModel"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionTransitionViewModel"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionTransitionViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/eligible-for-upgrade":
    get:
      tags:
      - Subscriptions
      summary: List eligible Subscriptions for upgrade
      description: Returns a list of eligible subscriptions for upgrade of a specified
        subscription.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: offerId
        in: query
        description: GUID Unique identifier for the offer.
        required: true
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: GUID Unique identifier for the reseller. This identifier must
          match the origin subscription that is intended for upgrade.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionListItem"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionListItem"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SubscriptionListItem"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/upgrade":
    post:
      tags:
      - Subscriptions
      summary: Upgrade a Subscription
      description: Upgrades the specified subscription. This process is asynchronous,
        therefore it will start executing after the request is submitted and may take
        some time.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The subscription transition info to upgrade the existent subscription.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/SubscriptionTransitionViewModel"
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ConflictingSubscriptionsViewModel"
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/name":
    patch:
      tags:
      - Subscriptions
      summary: Update a entitlement Subscription name
      description: Updates the specified entitlement subscription friendly name. Since
        this resource is specific to the Microsoft provider, this request is only
        valid for provider customers that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The entitlement subscription
          must belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the entitlement subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The friendly name to update the existent entitlement subscription.
          This may be up to 255 characters.
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/grant-owner-access/{userEmail}":
    put:
      tags:
      - Subscriptions
      summary: Grants owner access to a Azure entitlement.
      description: "Grants owner access to a Azure entitlement.\r\n**Available to
        the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The entitlement subscription
          must belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the entitlement subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: userEmail
        in: path
        description: The user email to grant owner access to.
        required: true
        schema:
          type: string
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/monthly-budget":
    patch:
      tags:
      - Subscriptions
      summary: Set monthly budget for an Azure Subscription
      description: "Sets the monthly budget in the specified azure subscription. Since
        this resource is specific to the Microsoft provider, this request is only
        valid for provider customers that belong to a Microsoft tenant/provider.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The entitlement subscription
          must belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the entitlement subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The request body with the info to perform the action. This body
          contains an JSON Object with a property (monthlyBudget).
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/SetMonthlyBudgetRequest"
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/custom-term-end-dates":
    get:
      tags:
      - Subscriptions
      summary: List all Subscriptions end-dates for coterminosity.
      description: Returns a list of Subscriptions end-dates for the provided customer
        and term duration.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: termDuration
        in: query
        description: The term duration
        schema:
          type: string
      - name: providerInstanceId
        in: query
        description: The provider instance Id
        schema:
          type: string
          format: uuid
      - name: subscriptionEndDate
        in: query
        description: The subscription end date.
        schema:
          type: string
          format: date-time
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customers/{customerId}/subscriptions/{subscriptionId}/migration":
    post:
      tags:
      - Subscriptions
      summary: Migrate a subscription.
      description: Migrates the specified subscription. Since this resource is specific
        to the Microsoft provider, this request is only valid for subscriptions that
        belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The subscription migration info to migrate the existent subscription.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MigrateSubscriptionRequest"
        required: true
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    get:
      tags:
      - Subscriptions
      summary: Retrieve Migration status.
      description: Retrieve the migration status for the specified subscription. Since
        this resource is specific to the Microsoft provider, this request is only
        valid for subscriptions that belong to a Microsoft tenant/provider.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer. The subscription must
          belong to this customer, otherwise this request will fail.
        required: true
        schema:
          type: string
          format: uuid
      - name: subscriptionId
        in: path
        description: GUID Unique identifier for the subscription.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/MigrationStatusViewModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/MigrationStatusViewModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/MigrationStatusViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1":
    get:
      tags:
      - Users
      summary: List all Users
      description: "Returns a list of your users. The users are returned sorted by
        the specified sortPropertyName.\r\n**Available to the roles:** csp, reseller"
      parameters:
      - name: pageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The number of objects to be returned at each page. The size can
          range between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: searchValue
        in: query
        description: The search query string.
        schema:
          type: string
      - name: sortPropertyName
        in: query
        description: 'The name of the property to sort the customers by. Possible
          values: Name or Email'
        schema:
          type: string
      - name: ascendingOrder
        in: query
        description: if set to `true` [ascending order].
        schema:
          type: boolean
      - name: groups
        in: query
        description: The groups.
        schema:
          type: string
      - name: resellerId
        in: query
        description: GUID Unique identifier for the reseller. View only users in the
          context of the specified resellerId. In case of a reseller user this property
          is auto-populated.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/UserViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/UserViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/UserViewModelPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/users/groups":
    get:
      tags:
      - Users
      summary: List all Groups
      description: Returns a list of groups. The groups are returned sorted by Name.
      parameters:
      - name: pageNumber
        in: query
        description: A cursor for pagination across multiple pages of results. The
          default value is 1.
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: The number of objects to be returned at each page. The size range
          between 1 and 2000, and the default is 25.
        schema:
          type: integer
          format: int32
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/GroupViewModelPagedCollection"
            application/json:
              schema:
                "$ref": "#/components/schemas/GroupViewModelPagedCollection"
            text/json:
              schema:
                "$ref": "#/components/schemas/GroupViewModelPagedCollection"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/users/{email}":
    patch:
      tags:
      - Users
      summary: Updates a User
      description: Updates the specified User.
      parameters:
      - name: email
        in: path
        description: The email of the csp user to update.
        required: true
        schema:
          type: string
      - name: resellerId
        in: query
        description: The reseller id.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The user info to update the existent user.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UserViewModel"
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    delete:
      tags:
      - Users
      summary: Delete a User
      description: Deletes the specified User. This request only soft-deletes the
        user, so it will still exists after this request but, will be hidden.
      parameters:
      - name: email
        in: path
        description: The email of the user to delete.
        required: true
        schema:
          type: string
      - name: resellerId
        in: query
        description: The reseller id of the user to delete.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/reseller/{resellerId}/users":
    post:
      tags:
      - Users
      summary: Create a Reseller User
      description: "Creates a new User with the provided UserViewModel.\r\n**Available
        to the roles:** csp, reseller"
      parameters:
      - name: resellerId
        in: path
        description: GUID Unique identifier for the reseller. The reseller context
          that the customer will be created under.
        required: true
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The user info to create the user.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UserViewModel"
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
                format: uuid
            application/json:
              schema:
                type: string
                format: uuid
            text/json:
              schema:
                type: string
                format: uuid
        '201':
          description: Created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
            application/json:
              schema:
                type: string
                format: uuid
            text/json:
              schema:
                type: string
                format: uuid
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
  "/v1/customer/{customerId}/users":
    get:
      tags:
      - Users
      summary: List all Users for a Customer
      description: Returns a list of users for the specified customer. The users are
        returned sorted by Name.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: GUID Unique identifier for the reseller. View only users in the
          context of the specified resellerId. In case of a reseller user this property
          is auto-populated.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/UserViewModel"
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/UserViewModel"
            text/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/UserViewModel"
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
    post:
      tags:
      - Users
      summary: Create a Customer User
      description: Creates a new User with the provided UserViewModel.
      parameters:
      - name: customerId
        in: path
        description: GUID Unique identifier for the customer.
        required: true
        schema:
          type: string
          format: uuid
      - name: resellerId
        in: query
        description: GUID Unique identifier for the reseller. The reseller context
          that the customer will be created under.
        schema:
          type: string
          format: uuid
      - name: X-Tenant
        in: header
        description: The domain used to access the portal.
        required: true
        schema:
          type: string
        example: portal.cloudcockpit.com
      - name: Authorization
        in: header
        description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization:
          Bearer {token}"'
        required: true
        schema:
          type: string
          default: Bearer eyJ0eXAiO...
      - name: X-Correlation-Id
        in: header
        description: This header is optional and by setting it you can correlate the
          audit logs made by this request.
        schema:
          type: string
          format: uuid
      requestBody:
        description: The user info to create the user.
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UserViewModel"
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
                format: uuid
            application/json:
              schema:
                type: string
                format: uuid
            text/json:
              schema:
                type: string
                format: uuid
        '201':
          description: Created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
            application/json:
              schema:
                type: string
                format: uuid
            text/json:
              schema:
                type: string
                format: uuid
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
            text/json:
              schema:
                "$ref": "#/components/schemas/ErrorResponseModel"
      security:
      - bearerAuth: []
components:
  schemas:
    AddProviderInstanceToCustomerRequest:
      required:
      - margin
      - providerCustomerData
      - providerInstanceId
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        providerCustomerData:
          type: string
          description: |-
            The provider specific data for this customer.
            For a microsoft provider instance the json object needs the following properties:
            - Domain (Example: TestDomain)
            - CredentialsEmail (Example: test@email.com)
            - AcceptedMCA (Example: true)
            - AgreementDate (Example: 2022-12-28T00:00:00Z)
            - KeepPrimaryInformation (Example: true)
            - FirstName (Example: Test)
            - LastName (Example: Test)
            - Email (Example: test@email.com)
            - Phone (Example: 921231231)
            - DefaultCulture (Example: en-US)
            - Language (Example: en)
            - AssociatedPartnerId (Example: 6234552)
            - Qualifications (Example: [])
            - EnableGDAP (Example: true)
          nullable: true
        margin:
          "$ref": "#/components/schemas/PriceMargin"
        offerTypeMargins:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/PriceMargin"
          description: |-
            Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance.
            Price margins applied at the offer type level will override the price margin applied at the provider instance level.
            If no price margin is applied to a specific offer type of this provider instance then it will not be in the dictionary.
            This dictionary is optional.
          nullable: true
          example:
            Value:
              license:
                MarginRule:
                  Name: markup
                Value: 10
      additionalProperties: false
      description: Request with the information of the provider instance to add to
        the customer.
    AuditLogOrigin:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The origin of the audit log. Possible values: User, API or System'
    AuditLogStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The status of the audit log. Possible values: Processing, Succeded
        or Failed'
    AuditLogViewModel:
      type: object
      properties:
        id:
          type: string
          description: The GUID identifier for the audit log.
          format: uuid
        customer:
          type: string
          description: The company name of the customer affected by this audit log.
            Can be null if no customer was affected.
          nullable: true
        reseller:
          type: string
          description: The company name of the reseller affected by this audit log.
            Can be null if no reseller was affected.
          nullable: true
        timestamp:
          type: string
          description: The timestamp when the audit log was first created.
          format: date-time
        operation:
          type: string
          description: The name of the operation for this audit log.
          nullable: true
        status:
          "$ref": "#/components/schemas/AuditLogStatus"
        user:
          type: string
          description: The email of the user that initiated this audit log.
          nullable: true
        origin:
          "$ref": "#/components/schemas/AuditLogOrigin"
        entityType:
          type: string
          description: The type of the entity affected in this audit log.
          nullable: true
        entityId:
          type: string
          description: The entity identifier affected in this audit log.
          format: uuid
          nullable: true
        oldValues:
          type: object
          additionalProperties:
            nullable: true
          description: A dictionary with keys of value string and values of type object
            that contain the old property values of the entity that was affected.
            If the entity was created this property will be null.
          nullable: true
          readOnly: true
        newValues:
          type: object
          additionalProperties:
            nullable: true
          description: A dictionary with keys of value string and values of type object
            that contain the new property values of the entity that was affected.
            If the entity was deleted this property will be null.
          nullable: true
          readOnly: true
        message:
          type: string
          description: The message of the audit log.
          nullable: true
        correlationId:
          type: string
          description: The correlation id of the audit log.
          format: uuid
          nullable: true
      additionalProperties: false
      description: View model that represents an audit log.
    AuditLogViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/AuditLogViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    AutoRenewSettings:
      required:
      - billingFrequency
      - quantity
      - term
      type: object
      properties:
        term:
          "$ref": "#/components/schemas/TermDuration"
        billingFrequency:
          "$ref": "#/components/schemas/BillingFrequency"
        quantity:
          type: integer
          description: The quantity
          format: int32
          nullable: true
          readOnly: true
        customTermEndDate:
          type: string
          description: The custom term end date
          format: date-time
          nullable: true
      additionalProperties: false
    BadRequestErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          description: The HTTP status code that represents a specific error scenario.
          format: int32
          readOnly: true
          example: 400
        type:
          type: string
          description: The type of error that occurred.
          nullable: true
          readOnly: true
          example: ValidationException
        description:
          type: string
          description: Describes the error scenario that occurred.
          nullable: true
          readOnly: true
          example: 'Validation failed: \n -- PageSize: The page size must be between
            1 and 2000 Severity: Error'
        correlationId:
          type: string
          description: The correlationId of the request that originated the error.
          nullable: true
          readOnly: true
          example: 685043EA-6D49-4ACE-8BDB-CCE9D3E2DBD0
      additionalProperties: false
      description: An example of the API response when a bad request error happens.
    BillingFrequency:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The billing frequency for this entity. Possible values: OneTime,
        Monthly, Annual, Triennial or None'
    BillingType:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The billing type for the offer. Possible values: License, Usage
        or None'
    ConflictingSubscriptionsViewModel:
      type: object
      properties:
        portalSubscription:
          "$ref": "#/components/schemas/SubscriptionConflictCheckInfoViewModel"
        providerSubscription:
          "$ref": "#/components/schemas/SubscriptionConflictCheckInfoViewModel"
      additionalProperties: false
    CountryCode:
      type: object
      properties:
        value:
          type: string
          description: |-
            The value that represents a country in standard ISO 3166-1 alpha-2.
            The value contains only two letters in uppercase format.
            This standard is available at https://www.iban.com/country-codes.
          nullable: true
          readOnly: true
      additionalProperties: false
    CreateCustomerUserRequest:
      required:
      - customerUser
      - providerInstanceId
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        customerUser:
          "$ref": "#/components/schemas/CustomerUserViewModel"
      additionalProperties: false
    CreateDelegatedAdminRelationshipRequest:
      required:
      - autoExtendEnabled
      - displayName
      - providerInstanceId
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        displayName:
          type: string
          description: The display name to set in the relationship. This may be up
            to 50 characters.
          nullable: true
        autoExtendEnabled:
          type: boolean
          description: The flag to indicate whether the relationship is auto extend
            enabled.
        customSelectedGdapRolesIds:
          type: array
          items:
            type: string
          description: |-
            A list of ids of the custom GDAP roles selection.
            In the absence of this property (null), a new relationship with the default roles set in the portal will be created.
            The ids of the possible roles to chose from can be found here https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#all-roles
          nullable: true
          example:
          - 729827e3-9c14-49f7-bb1b-9608f156bbb8
          - 4d6ac14f-3453-41d0-bef9-a3e0c569773a
      additionalProperties: false
    CreateOrderResponseViewModel:
      type: object
      properties:
        orderId:
          type: string
          description: The id of the order that was created on CloudCockpit.
          format: uuid
          example: 573b2955-f31f-4edd-9a52-0226e0b0111f
      additionalProperties: false
      description: The response model that contains the id of the order that was created
        on CloudCockpit.
    Currency:
      type: object
      properties:
        name:
          type: string
          description: The name of the currency.
          nullable: true
          readOnly: true
      additionalProperties: false
    CustomDomainStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
    CustomerAccountInfoViewModel:
      required:
      - addressLine1
      - city
      - companyName
      - country
      - email
      - firstName
      - lastName
      - phone
      - state
      - zip
      type: object
      properties:
        companyName:
          type: string
          description: The name of the company. This may be up to 255 characters.
          nullable: true
        taxId:
          type: string
          description: The company tax Id. This may be up to 255 characters.
          nullable: true
        country:
          type: string
          description: The company country code in the ISO 3166-1 alpha-2 standard.
          nullable: true
          example: PT
        addressLine1:
          type: string
          description: The company address line 1. This may be up to 255 characters.
          nullable: true
        addressLine2:
          type: string
          description: The company address line 2. This may be up to 255 characters.
          nullable: true
        city:
          type: string
          description: The company city. This may be up to 255 characters.
          nullable: true
        state:
          type: string
          description: The company State. This may be up to 255 characters.
          nullable: true
        zip:
          type: string
          description: The company ZIP. This may be up to 30 characters.
          nullable: true
        firstName:
          type: string
          description: The company primary contact first name. This may be up to 255
            characters.
          nullable: true
        middleName:
          type: string
          description: The company primary contact middle name. This may be up to
            255 characters.
          nullable: true
        lastName:
          type: string
          description: The company primary contact last name. This may be up to 255
            characters.
          nullable: true
        email:
          type: string
          description: The company primary contact email. This may be up to 255 characters.
          nullable: true
        phone:
          type: string
          description: The company primary contact phone. This may be up to 30 characters.
          nullable: true
      additionalProperties: false
      description: View model that represents a customer.
    CustomerAssociationViewModel:
      type: object
      properties:
        resellerId:
          type: string
          description: The reseller id.
          format: uuid
          nullable: true
        name:
          type: string
          description: The name of the partner.
          nullable: true
      additionalProperties: false
      description: The viewmodel for the customer relationships.
    CustomerCreationError:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: |-
        The creation error for this provider customer. This property will only have a diferent value than None if the Status is equal to Failed.
        Possible values: DomainExists, InvalidCompanyInfo, None or Unknown
    CustomerLicenseViewModel:
      required:
      - isSelected
      - skuId
      type: object
      properties:
        skuId:
          type: string
          description: The license sku id.
          format: uuid
        name:
          type: string
          description: The license name.
          nullable: true
        availableLicenses:
          type: integer
          description: The number of available licenses.
          format: int32
        isSelected:
          type: boolean
          description: If the license is selected or not.
        totalLicenses:
          type: integer
          description: The number of total licenses.
          format: int32
        consumedLicenses:
          type: integer
          description: The number of consumed licenses.
          format: int32
        suspendedLicenses:
          type: integer
          description: The number of suspended licenses.
          format: int32
      additionalProperties: false
      description: The view model of a customer license.
    CustomerUserRoleViewModel:
      type: object
      properties:
        roleId:
          type: string
          description: The role identifier.
          format: uuid
        name:
          type: string
          description: The role name.
          nullable: true
      additionalProperties: false
      description: The view model of a customer user role.
    CustomerUserViewModel:
      required:
      - displayName
      - domain
      - email
      - location
      type: object
      properties:
        id:
          type: string
          description: The GUID identifier for the customer.
          format: uuid
        displayName:
          type: string
          description: The customer user display name. This may be up to 50 characters.
          nullable: true
        email:
          type: string
          description: The customer user email. This may be up to 48 characters.
          nullable: true
        firstName:
          type: string
          description: THe customer user first name. This may be up to 50 characters.
          nullable: true
        lastName:
          type: string
          description: The customer user last name. This may be up to 50 characters.
          nullable: true
        location:
          type: string
          description: The customer user location.
          nullable: true
        temporaryPassword:
          type: string
          description: The customer user temporary password.
          nullable: true
        domain:
          type: string
          description: The customer domain.
          nullable: true
      additionalProperties: false
    CustomerUserViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/CustomerUserViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    CustomerViewModel:
      required:
      - addressLine1
      - city
      - companyName
      - country
      - email
      - firstName
      - lastName
      - phone
      - providerCustomers
      - state
      - zip
      type: object
      properties:
        id:
          type: string
          description: The GUID identifier for the customer.
          format: uuid
        companyName:
          type: string
          description: The name of the company. This may be up to 255 characters.
          nullable: true
        taxId:
          type: string
          description: The company tax Id. This may be up to 255 characters.
          nullable: true
        country:
          type: string
          description: The company country code in the ISO 3166-1 alpha-2 standard.
          nullable: true
          example: PT
        addressLine1:
          type: string
          description: The company address line 1. This may be up to 255 characters.
          nullable: true
        addressLine2:
          type: string
          description: The company address line 2. This may be up to 255 characters.
          nullable: true
        city:
          type: string
          description: The company city. This may be up to 255 characters.
          nullable: true
        state:
          type: string
          description: The company State. This may be up to 255 characters.
          nullable: true
        zip:
          type: string
          description: The company ZIP. This may be up to 30 characters.
          nullable: true
        firstName:
          type: string
          description: The company primary contact first name. This may be up to 255
            characters.
          nullable: true
        middleName:
          type: string
          description: The company primary contact middle name. This may be up to
            255 characters.
          nullable: true
        lastName:
          type: string
          description: The company primary contact last name. This may be up to 255
            characters.
          nullable: true
        email:
          type: string
          description: The company primary contact email. This may be up to 255 characters.
          nullable: true
        phone:
          type: string
          description: The company primary contact phone. This may be up to 30 characters.
          nullable: true
        internalIdentifier:
          type: string
          description: The customer internal identifier. This may be up to 255 characters.
          nullable: true
        resellerId:
          type: string
          description: The reseller identifier. If this value is set a relation between
            this customer and the reseller will be created, if null a direct relation
            between the CSP and the customer will be created instead.
          format: uuid
          nullable: true
        providerCustomers:
          type: object
          additionalProperties:
            oneOf:
            - "$ref": "#/components/schemas/ProviderCustomerViewModel"
            - "$ref": "#/components/schemas/MicrosoftProviderCustomerViewModel"
            - "$ref": "#/components/schemas/GenericProviderCustomerViewModel"
            description: Represents a customer associated with a specific provider.
            nullable: true
          description: The provider customers. A list containing the info about this
            customer in one or more provider instances.
          nullable: true
          example:
            cb3cd15b-1d6e-45be-b493-c71549cbfd87:
              providerName: Microsoft
              providerInstanceId: cb3cd15b-1d6e-45be-b493-c71549cbfd87
              providerCustomerId: f574cf12-a7d6-43fe-9663-1af97b04e5ab
              providerCustomerData: '{"Domain":"TestDomain","CredentialsEmail":"test@email.com","AcceptedMCA":true,"AgreementDate":"2022-12-28T00:00:00Z","KeepPrimaryInformation":true,"FirstName":"Test","LastName":"Test","Email":"test@email.com","Phone":"921231231","DefaultCulture":"en-US","Language":"en","AssociatedPartnerId":null,"Qualifications":[],"EnableGDAP":true}'
              margin:
                marginRule:
                  name: markup
                value: 10.6
              offerTypeMargins:
                Value:
                  license:
                    MarginRule:
                      Name: markup
                    Value: 10
              microsoftCustomerAgreement:
                customerId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                providerInstanceId: cb3cd15b-1d6e-45be-b493-c71549cbfd87
                signatoryContact:
                status:
                  name: required
                attestationId:
                lastUpdate:
                dateAgreed:
        customerAssociations:
          type: array
          items:
            "$ref": "#/components/schemas/CustomerAssociationViewModel"
          description: The list of partners associated to a customer
          nullable: true
      additionalProperties: false
      description: View model that represents a customer.
    CustomerViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/CustomerViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    DelegatedAdminAccessAssignmentStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
    DelegatedAdminAccessAssignmentViewModel:
      type: object
      properties:
        accessContainer:
          "$ref": "#/components/schemas/DelegatedAdminAccessContainerViewModel"
        accessDetails:
          "$ref": "#/components/schemas/DelegatedAdminAccessDetails"
        createdDateTime:
          type: string
          description: The date and time in UTC time when the access assignment was
            created. Read-only.
          format: date-time
          nullable: true
        id:
          type: string
          description: The unique identifier of the access assignment. Read-only.
          nullable: true
        lastModifiedDateTime:
          type: string
          description: The date and time in UTC time when this access assignment was
            last modified. Read-only.
          format: date-time
          nullable: true
        status:
          "$ref": "#/components/schemas/DelegatedAdminAccessAssignmentStatus"
      additionalProperties: false
    DelegatedAdminAccessContainerType:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
    DelegatedAdminAccessContainerViewModel:
      type: object
      properties:
        accessContainerId:
          type: string
          description: "The identifier of the access container (for example, a security
            group). \nFor \"securityGroup\" access containers, this must be a valid
            ID of an Azure AD security group in the Microsoft partner's tenant."
          nullable: true
        accessContainerType:
          "$ref": "#/components/schemas/DelegatedAdminAccessContainerType"
      additionalProperties: false
    DelegatedAdminAccessDetails:
      type: object
      properties:
        unifiedRoles:
          type: array
          items:
            "$ref": "#/components/schemas/UnifiedRole"
          nullable: true
          readOnly: true
      additionalProperties: false
    DelegatedAdminAccessDetailsViewModel:
      type: object
      properties:
        unifiedRoles:
          type: array
          items:
            "$ref": "#/components/schemas/UnifiedRoleViewModel"
          description: The directory roles that the Microsoft partner is assigned
            in the customer tenant.
          nullable: true
      additionalProperties: false
    DelegatedAdminRelation:
      type: object
      properties:
        relationshipId:
          type: string
          nullable: true
          readOnly: true
        displayName:
          type: string
          nullable: true
          readOnly: true
        duration:
          type: string
          nullable: true
          readOnly: true
        autoExtendDuration:
          type: string
          nullable: true
          readOnly: true
        customer:
          "$ref": "#/components/schemas/DelegatedAdminRelationCustomerParticipant"
        status:
          "$ref": "#/components/schemas/DelegatedAdminRelationStatus"
        accessDetails:
          "$ref": "#/components/schemas/DelegatedAdminAccessDetails"
      additionalProperties: false
    DelegatedAdminRelationCustomerParticipant:
      type: object
      properties:
        tenantId:
          type: string
          nullable: true
          readOnly: true
      additionalProperties: false
    DelegatedAdminRelationStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
    DelegatedAdminRelationshipViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id of the relationship.
          nullable: true
        displayName:
          type: string
          description: The display name of the relationship.
          nullable: true
        duration:
          type: string
          description: The duration of the relationship
          nullable: true
        status:
          "$ref": "#/components/schemas/DelegatedAdminRelationStatus"
        createdDateTime:
          type: string
          description: The date when the relationship was created
          format: date-time
          nullable: true
        activatedDateTime:
          type: string
          description: The date when the relationship was activated
          format: date-time
          nullable: true
        lastModifiedDateTime:
          type: string
          description: The date when the relationship was last modified
          format: date-time
          nullable: true
        endDateTime:
          type: string
          description: The date when the relationship ends
          format: date-time
          nullable: true
        accessDetails:
          "$ref": "#/components/schemas/DelegatedAdminAccessDetailsViewModel"
        autoExtendDuration:
          type: string
          description: The auto extend duration of the relationship
          nullable: true
      additionalProperties: false
    DeleteCustomerUserRequest:
      required:
      - providerInstanceId
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
      additionalProperties: false
    EntityStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The status for this entity. Possible values: Processing, Success,
        Failed'
    ErrorModel:
      type: object
      properties:
        propertyName:
          type: string
          description: The name of the property involved in the error.
          nullable: true
          readOnly: true
        description:
          type: array
          items:
            type: string
          description: A description of each error associated with the given property.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: |-
        This class is used to represent the details of an error and specifies the name of the property and the description
        of each of the errors associated with that property.
    ErrorResponseModel:
      type: object
      properties:
        statusCode:
          type: integer
          description: The HTTP status code that represents a specific error scenario.
          format: int32
          readOnly: true
        type:
          type: string
          description: The type of error that occurred.
          nullable: true
          readOnly: true
        description:
          type: string
          description: Describes the error scenario that occurred.
          nullable: true
          readOnly: true
        correlationId:
          type: string
          description: The correlationId of the request that originated the error.
          nullable: true
          readOnly: true
        errors:
          type: array
          items:
            "$ref": "#/components/schemas/ErrorModel"
          description: A list containing the detail of the errors that occurred in
            this error scenario.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: |-
        This class represents the response which is returned to consumers in case of an error, containing details about it, as well as the correlationId
        of the performed request so that consumers can supply us that id for us to provide support.
    GenericProviderCustomerViewModel:
      type: object
      allOf:
      - "$ref": "#/components/schemas/ProviderCustomerViewModel"
      additionalProperties: false
    GroupViewModel:
      required:
      - id
      type: object
      properties:
        id:
          type: string
          description: The id of the group.
          format: uuid
        name:
          type: string
          description: The group name
          nullable: true
      additionalProperties: false
      description: View model that represents a group.
    GroupViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/GroupViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    InternalServerErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          description: The HTTP status code that represents a specific error scenario.
          format: int32
          readOnly: true
          example: 500
        type:
          type: string
          description: The type of error that occurred.
          nullable: true
          readOnly: true
          example: NullReferenceException
        description:
          type: string
          description: Describes the error scenario that occurred.
          nullable: true
          readOnly: true
          example: An error happened processing your request. Please contact support.
        correlationId:
          type: string
          description: The correlationId of the request that originated the error.
          nullable: true
          readOnly: true
          example: 685043EA-6D49-4ACE-8BDB-CCE9D3E2DBD0
      additionalProperties: false
      description: An example of the API response when an internal server happens.
    InvoiceDailyRatedUsageLineItemResellerViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id that uniquely identifies a daily rated usage invoice
            line item.
          format: uuid
          example: A0D0759D-49C9-49C6-83FA-83C92749CBEB
        customerProviderId:
          type: string
          description: The id of customer on the provider's side associated with the
            charge.
          nullable: true
          example: F9C5A7CE-EC5C-4DD9-ADA4-F4DE10DE8E94
        billingCurrency:
          type: string
          description: The billing currency code, in 3 letter format.
          nullable: true
          example: EUR
        customerId:
          type: string
          description: |-
            The id of the customer associated with this charge.
            Can be null, for example when the CSP removed the relationship with the customer on the provider side
            and the customer wasn't in our system when that happened.
          format: uuid
          nullable: true
          example: 6BC16733-4A2F-4393-B9F4-89B0AED854C7
        customerName:
          type: string
          description: The company name of the customer.
          nullable: true
          example: Customer name
        customerInternalId:
          type: string
          description: The internal id of the customer associated with this charge.
          nullable: true
          example: CustomerTest
        subscriptionId:
          type: string
          description: |-
            The id of the subscription associated with the charge.
            Can be null, for example when the CSP removed the relationship with the customer on the provider side
            and the subscription wasn't in our system when that happened.
          format: uuid
          nullable: true
          example: 58F0AA3E-5152-4C1E-8E39-10D20F908C1F
        providerSubscriptionId:
          type: string
          description: The id of the subscription associated with this charge on the
            provider's side.
          nullable: true
          example: E896E6F0-9BEE-4F3F-9138-38737037A627
        subscriptionName:
          type: string
          description: The friendly name of the subscription.
          nullable: true
          example: Azure plan
        subscriptionInternalId:
          type: string
          description: The internal id of the subscription associated with this charge.
          nullable: true
          example: SubscriptionTest
        entitlementId:
          type: string
          description: The id of the azure subscription associated to the charge.
          nullable: true
          example: fd666eca-477d-4f30-95ac-9ff265ce22aa
        entitlementDescription:
          type: string
          description: The name of the azure subscription associated to the charge.
          nullable: true
          example: Subscription-Demo
        resourceGroup:
          type: string
          description: The name of the resource group associated to the charge.
          nullable: true
          example: Demo-RG
        pecAwarded:
          type: boolean
          description: A boolean value indicating if the PEC was awarded on this charge.
          example: true
        subtotalForReseller:
          type: number
          description: The cost the reseller pays for the subscription on this charge
            before taxes.
          format: double
          nullable: true
          example: 96.54238
        subtotalForCustomer:
          type: number
          description: The price the customer pays for the subscription on this charge
            before taxes.
          format: double
          nullable: true
          example: 98.015
        customerPriceMarginRule:
          type: string
          description: |-
            The margin rule and value applied at the customer level.
            If there is a price margin applied at the offer category, then that is the one chosen.
            However, if the subscription price margin is set, then it overrides this one.
          nullable: true
          example: erpminudiscount
        customerPriceMargin:
          type: number
          description: |-
            The margin value applied at the customer level.
            If there is a price margin applied at the offer category, then that is the one chosen.
          format: double
          nullable: true
          example: 0
        subscriptionPriceMarginRule:
          type: string
          description: |-
            The margin rule applied at the subscription level (can be null).
            This margin overrides the customer's price margin, if it is set.
            We still show both the customer and subscription price margin.
          nullable: true
          example: erpminudiscount
        subscriptionPriceMargin:
          type: number
          description: |-
            The margin value applied at the subscription level (can be null).
            This margin overrides the customer's price margin, if it is set.
            We still show both the customer and subscription price margin.
          format: double
          nullable: true
          example: 0
        subscriptionPONumber:
          type: string
          description: The purchase order number of the subscription associated with
            this charge.
          nullable: true
          example: '8543943821'
      additionalProperties: false
      description: |-
        A model that represents a single charge of a daily rated usage invoice for a reseller.
        In the case of the Microsoft provider each line item represents an **Azure Pay-As-You-Go** charge
        grouped by Partner Earned Credit (PEC) and resource group of an azure entitlement of an azure plan subscription of a customer.
    InvoiceDailyRatedUsageLineItemResellerViewModelSeekBasedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemResellerViewModel"
          description: The items in this particular seek operation.
          nullable: true
        continuationToken:
          type: string
          description: |-
            The token to continue to retrieve the paginated items.
            Should not be set if the first page of items is desired.
          nullable: true
      additionalProperties: false
      description: |-
        A helper class to be used by collections where we use a continuation token
        to obtain the next set of results.
    InvoiceLicenseLineItemCustomerViewModel:
      type: object
      properties:
        customerId:
          type: string
          description: |-
            The id of the customer associated with the charge.
            Can be null, for example when the CSP removed the relationship with the customer on the provider side
            and the customer wasn't in our system when that happened.
          format: uuid
          nullable: true
          example: 2C741C83-E111-4A77-BC5F-C2F065275FA9
        customerName:
          type: string
          description: The company name of the customer associated with the charge.
          nullable: true
          example: CloudCockpit
        orderId:
          type: string
          description: The id that identifies the order associated with the charge.
          nullable: true
          example: '569423888785251957'
        subscriptionProviderId:
          type: string
          description: The id of the subscription associated with the charge on the
            provider's side.
          nullable: true
          example: FA2A91FD-7286-4DCD-9718-20048CCA832A
        offerProviderId:
          type: string
          description: "The id on the provider's side that identifies the \noffer
            associated with the charge."
          nullable: true
          example: B4D4B7F4-4089-43B6-9C44-DE97B760FB11
        offerName:
          type: string
          description: The name of the offer associated with the charge.
          nullable: true
          example: Visio Plan 2
        subscriptionStartDate:
          type: string
          description: |-
            The start date of billing for the subscription.
            This value can change once a subscription renews.
            If it renews, then on the next invoice this property is updated too.
          format: date-time
          nullable: true
          example: '2021-07-21T00:00:00'
        subscriptionEndDate:
          type: string
          description: The end date of the term of the subscription.
          format: date-time
          nullable: true
          example: '2024-07-20T00:00:00'
        chargeStartDate:
          type: string
          description: The billing start date for this charge.
          format: date-time
          example: '2022-12-21T00:00:00'
        chargeEndDate:
          type: string
          description: The billing end date for this charge.
          format: date-time
          example: '2023-01-20T00:00:00'
        chargeType:
          type: string
          description: "The type of charge on this line item.\nPossible values for
            the Microsoft provider include:\n- Activation fee: The amount charged
            to the customer when they use the subscription after purchase.\n- Cancel
            fee: Prorated charges refunded to the customer when associated licenses
            are changed.\n- Cancel instance prorate: Prorated charges canceled when
            customer with monthly subscription has subscription suspended and associated
            licenses changed within the same month.\n- Cycle fee: Periodic charges
            for a subscription.\n- Cycle instance prorate: Prorated charges assessed
            from the customer when associated licenses are changed.\n- Prorate fees
            when cancel: Prorated refund for unused portion of service upon cancellation.\n-
            Prorate fees when convert away from current offering: Prorated charges
            after converting away from the current monthly subscription to an annual
            subscription.\n- Prorate fees when convert to a new offering: \tProrated
            charges after converting a monthly subscription to a new annual subscription.\n-
            New purchase cycle fee: The charge type for a subscription when using
            both monthly or annual billing.\n- Prorate fees when purchase: The first
            cycle fee of a net new subscription.\n- Prorate fee when renew: The first
            cycle fee of a renewed subscription.\n- Prorate fees when activate: Prorated
            fees from reactivating suspended subscription until end of billing period."
          nullable: true
          example: Cycle fee
        quantity:
          type: number
          description: The billed quantity of the subscription associated with the
            charge.
          format: double
          example: 2
        currency:
          type: string
          description: The currency associated with the prices.
          nullable: true
          example: EUR
        providerData:
          type: object
          additionalProperties:
            type: string
            nullable: true
          description: |-
            A dictionary that maps from strings to strings that contains specific provider invoice data.
            If this line item is associated to a Microsoft invoice then the possible values are:
            **DomainName**: The domain of the customer associated with the charge, example: "test@pte.onmicrosoft.com".
          nullable: true
          example:
            DomainName: test@pte.onmicrosoft.com
        subscriptionName:
          type: string
          description: The name of the subscription associated with the charge.
          nullable: true
          example: Microsoft 365 Business Standard
        subscriptionDescription:
          type: string
          description: The description of the subscription associated with the charge.
          nullable: true
          example: Microsoft 365 Business Standard
        billingCycleType:
          type: string
          description: The billing cycle of the subscription associated with the charge.
          nullable: true
          example: Monthly
        unitPriceForCustomer:
          type: number
          description: The price per single quantity that the customer pays.
          format: double
          nullable: true
          example: 13.11
        amountForCustomer:
          type: number
          description: The amount for customer without taxes applied but including
            discounts.
          format: double
          nullable: true
          example: -7.45
        subtotalForCustomer:
          type: number
          description: |-
            The cost the customer pays for the subscription
            on this charge before taxes.
          format: double
          nullable: true
          example: 50.12
        taxForCustomer:
          type: number
          description: The taxes the customer pays for the subscription on this charge.
          format: double
          nullable: true
          example: 7.25
        totalForCustomer:
          type: number
          description: |-
            The cost the customer pays for the subscription
            on this charge after taxes.
          format: double
          nullable: true
          example: 57.31
        totalOtherDiscountForCustomer:
          type: number
          description: |-
            The discount the customer receives for the subscription
            on this charge.
          format: double
          nullable: true
          example: 1.1
        id:
          type: string
          description: The id that uniquely identifies a license invoice line item.
          format: uuid
          example: 7828D90D-2AC6-4F20-A95B-EE850BCD32A0
        subscriptionPONumber:
          type: string
          description: The purchase order number of the subscription associated with
            the charge.
          nullable: true
          example: '8543943821'
      additionalProperties: false
      description: |-
        A model that represents a single charge of a license invoice.
        In the case of the Microsoft provider each line item represents an **License legacy** charge.
    InvoiceLicenseLineItemCustomerViewModelSeekBasedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/InvoiceLicenseLineItemCustomerViewModel"
          description: The items in this particular seek operation.
          nullable: true
        continuationToken:
          type: string
          description: |-
            The token to continue to retrieve the paginated items.
            Should not be set if the first page of items is desired.
          nullable: true
      additionalProperties: false
      description: |-
        A helper class to be used by collections where we use a continuation token
        to obtain the next set of results.
    InvoiceLicenseLineItemResellerViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id that uniquely identifies a license invoice line item.
          format: uuid
          example: 7828D90D-2AC6-4F20-A95B-EE850BCD32A0
        customerProviderId:
          type: string
          description: The id of customer on the provider's side associated with the
            charge.
          nullable: true
          example: CB0A371A-046A-46A9-A299-96BD755E67A8
        customerId:
          type: string
          description: |-
            The id of the customer associated with the charge.
            Can be null, for example when the CSP removed the relationship with the customer on the provider side
            and the customer wasn't in our system when that happened.
          format: uuid
          nullable: true
          example: 2C741C83-E111-4A77-BC5F-C2F065275FA9
        customerName:
          type: string
          description: The company name of the customer associated with the charge.
          nullable: true
          example: CloudCockpit
        customerInternalId:
          type: string
          description: The internal id of the customer associated with the charge.
          nullable: true
          example: CustomerTest
        orderId:
          type: string
          description: The id that identifies the order associated with the charge.
          nullable: true
          example: '569423888785251957'
        subscriptionId:
          type: string
          description: |-
            The id of the subscription associated with the charge.
            Can be null, for example when the CSP removed the relationship with the customer on the provider side
            and the subscription wasn't in our system when that happened.
          format: uuid
          nullable: true
          example: 03DE5ECE-EC93-42A9-8F15-9A770AC1F832
        subscriptionName:
          type: string
          description: The name of the subscription associated with the charge.
          nullable: true
          example: Microsoft 365 Business Standard
        subscriptionDescription:
          type: string
          description: The description of the subscription associated with the charge.
          nullable: true
          example: Microsoft 365 Business Standard
        subscriptionInternalId:
          type: string
          description: The internal id of the subscription associated with the charge.
          nullable: true
          example: SubscriptionTest
        offerId:
          type: string
          description: The id of the offer in CloudCockpit, associated with the charge.
          format: uuid
          nullable: true
          example: A035AB3C-12E1-497B-A7F2-F7A7E31369E5
        offerProviderId:
          type: string
          description: "The id on the provider's side that identifies the \noffer
            associated with the charge."
          nullable: true
          example: B4D4B7F4-4089-43B6-9C44-DE97B760FB11
        offerName:
          type: string
          description: The name of the offer associated with the charge.
          nullable: true
          example: Visio Plan 2
        subscriptionStartDate:
          type: string
          description: |-
            The start date of billing for the subscription.
            This value can change once a subscription renews.
            If it renews, then on the next invoice this property is updated too.
          format: date-time
          nullable: true
          example: '2021-07-21T00:00:00'
        subscriptionEndDate:
          type: string
          description: The end date of the term of the subscription.
          format: date-time
          nullable: true
          example: '2024-07-20T00:00:00'
        chargeStartDate:
          type: string
          description: The billing start date for this charge.
          format: date-time
          example: '2022-12-21T00:00:00'
        chargeEndDate:
          type: string
          description: The billing end date for this charge.
          format: date-time
          example: '2023-01-20T00:00:00'
        chargeType:
          type: string
          description: "The type of charge on this line item.\nPossible values for
            the Microsoft provider include:\n- Activation fee: The amount charged
            to the customer when they use the subscription after purchase.\n- Cancel
            fee: Prorated charges refunded to the customer when associated licenses
            are changed.\n- Cancel instance prorate: Prorated charges canceled when
            customer with monthly subscription has subscription suspended and associated
            licenses changed within the same month.\n- Cycle fee: Periodic charges
            for a subscription.\n- Cycle instance prorate: Prorated charges assessed
            from the customer when associated licenses are changed.\n- Prorate fees
            when cancel: Prorated refund for unused portion of service upon cancellation.\n-
            Prorate fees when convert away from current offering: Prorated charges
            after converting away from the current monthly subscription to an annual
            subscription.\n- Prorate fees when convert to a new offering: \tProrated
            charges after converting a monthly subscription to a new annual subscription.\n-
            New purchase cycle fee: The charge type for a subscription when using
            both monthly or annual billing.\n- Prorate fees when purchase: The first
            cycle fee of a net new subscription.\n- Prorate fee when renew: The first
            cycle fee of a renewed subscription.\n- Prorate fees when activate: Prorated
            fees from reactivating suspended subscription until end of billing period."
          nullable: true
          example: Cycle fee
        unitPriceForReseller:
          type: number
          description: The price per single quantity that the reseller pays.
          format: double
          nullable: true
          example: 12.27
        unitPriceForCustomer:
          type: number
          description: The price per single quantity that the customer pays.
          format: double
          nullable: true
          example: 13.11
        quantity:
          type: number
          description: The billed quantity of the subscription associated with the
            charge.
          format: double
          example: 2
        amountForReseller:
          type: number
          description: The amount for reseller without taxes applied but including
            discounts.
          format: double
          nullable: true
          example: -7.45
        amountForCustomer:
          type: number
          description: The amount for customer without taxes applied but including
            discounts.
          format: double
          nullable: true
          example: -7.45
        totalOtherDiscountForReseller:
          type: number
          description: |-
            The discount the reseller receives for the subscription
            on this charge.
          format: double
          nullable: true
          example: 1.31
        totalOtherDiscountForCustomer:
          type: number
          description: |-
            The discount the customer receives for the subscription
            on this charge.
          format: double
          nullable: true
          example: 1.1
        subtotalForReseller:
          type: number
          description: |-
            The cost the reseller pays for the subscription
            on this charge before taxes.
          format: double
          nullable: true
          example: 49.08
        subtotalForCustomer:
          type: number
          description: |-
            The cost the customer pays for the subscription
            on this charge before taxes.
          format: double
          nullable: true
          example: 50.12
        totalForReseller:
          type: number
          description: |-
            The cost the reseller pays for the subscription
            on this charge after taxes.
          format: double
          nullable: true
          example: 55.31
        totalForCustomer:
          type: number
          description: |-
            The cost the customer pays for the subscription
            on this charge after taxes.
          format: double
          nullable: true
          example: 57.31
        taxForReseller:
          type: number
          description: The taxes the resellers pays for the subscription on this charge.
          format: double
          nullable: true
          example: 6.23
        taxForCustomer:
          type: number
          description: The taxes the customer pays for the subscription on this charge.
          format: double
          nullable: true
          example: 7.25
        currency:
          type: string
          description: The currency associated with the prices.
          nullable: true
          example: EUR
        billingCycleType:
          type: string
          description: The billing cycle of the subscription associated with the charge.
          nullable: true
          example: Monthly
        customerPriceMargin:
          type: number
          description: The customer price margin according to the CustomerPriceMarginRule.
          format: double
          nullable: true
          example: 0
        customerPriceMarginRule:
          type: string
          description: The customer price margin rule.
          nullable: true
          example: erpminusdiscount
        subscriptionPriceMargin:
          type: number
          description: The subscription price margin according to the SubscriptionPriceMargin.
          format: double
          nullable: true
        subscriptionPriceMarginRule:
          type: string
          description: The subscription price margin rule.
          nullable: true
          example: '0.00'
        providerData:
          type: object
          additionalProperties:
            type: string
            nullable: true
          description: |+
            A dictionary that maps from strings to strings that contains specific provider invoice data.


            If this line item is associated to a Microsoft invoice then the possible values are:
            **DomainName**: The domain of the customer associated with the charge, example: "test@pte.onmicrosoft.com".

          nullable: true
          example:
            DomainName: test@pte.onmicrosoft.com
        subscriptionProviderId:
          type: string
          description: The id of the subscription associated with the charge on the
            provider's side.
          nullable: true
          example: FA2A91FD-7286-4DCD-9718-20048CCA832A
        subscriptionPONumber:
          type: string
          description: The purchase order number of the subscription associated with
            the charge.
          nullable: true
          example: '8543943821'
      additionalProperties: false
      description: |-
        A model that represents a single charge of a license invoice.
        In the case of the Microsoft provider each line item represents an **License legacy** charge.
    InvoiceLicenseLineItemResellerViewModelSeekBasedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/InvoiceLicenseLineItemResellerViewModel"
          description: The items in this particular seek operation.
          nullable: true
        continuationToken:
          type: string
          description: |-
            The token to continue to retrieve the paginated items.
            Should not be set if the first page of items is desired.
          nullable: true
      additionalProperties: false
      description: |-
        A helper class to be used by collections where we use a continuation token
        to obtain the next set of results.
    InvoiceLineItemsFileViewModel:
      type: object
      properties:
        status:
          type: string
          description: |-
            The status of the file that contains the line items of the invoice.
            Possible values are: Queued, Processing, Available, Failed.
          nullable: true
          example: Queued
        location:
          type: string
          description: The absolute URL of the location of file of the line items
            of the invoice.
          nullable: true
          example: ''
        lastUpdate:
          type: string
          description: The timestamp of the last update of the invoice line items
            file.
          format: date-time
        fileFormat:
          type: string
          description: The file format culture used to generate the file.
          nullable: true
      additionalProperties: false
      description: |-
        The model that represents the status and location
        of a file that contains the line items of a given invoice.
    InvoiceOneTimeLineItemCustomerViewModel:
      type: object
      properties:
        customerId:
          type: string
          description: |-
            The id of the customer associated to this charge.
            Can be null.
          format: uuid
          nullable: true
          example: 2C741C83-E111-4A77-BC5F-C2F065275FA9
        customerName:
          type: string
          description: The company name of the customer.
          nullable: true
          example: Customer name
        customerCountry:
          type: string
          description: The country in which the customer is located.
          nullable: true
          example: IE
        orderDate:
          type: string
          description: The date the order was placed.
          format: date-time
          nullable: true
          example: '2023-05-03T21:25:51.6916741'
        chargeType:
          type: string
          description: "The type of charge on this line item.\nPossible values for
            the Microsoft provider include:\n- new: When you buy a new subscription.\n-
            renew: When you renew your subscription.\n- cycleCharge: Regular recurring
            charges for your subscription.\n- addQuantity: Refunds and charges when
            you add seats.\n- removeQuantity: Refunds and charges when you remove
            seats.\n- moveQuantity: When you upgrade to an existing subscription.\n-
            cancelImmediate: When you cancel your subscription.\n- convert: \tWhen
            you change from a free trial to a paid subscription or upgrade to a new
            subscription.\n- changeBillingPlan: Changing from monthly to yearly billing
            or vice versa.\n- customerCredit: Credits for Azure, SLA, among others.\n-
            extendTerm: When you are given a longer trial period."
          nullable: true
          example: cycleCharge
        quantity:
          type: number
          description: The quantity of the subscription associated to the charge.
          format: double
          example: 4
        currency:
          type: string
          description: The currency associated with the line item.
          nullable: true
          example: EUR
        subscriptionDescription:
          type: string
          description: The subscription description associated with this purchase.
          nullable: true
          example: Azure Plan
        subscriptionId:
          type: string
          description: |-
            The id of the subscription associated to the charge.
            Can be null.
          format: uuid
          nullable: true
          example: 03DE5ECE-EC93-42A9-8F15-9A770AC1F832
        chargeStartDate:
          type: string
          description: The billing start date for this charge.
          format: date-time
          example: '2023-04-01T00:00:00'
        chargeEndDate:
          type: string
          description: The billing end date for this charge.
          format: date-time
          example: '2023-04-30T23:59:59'
        termAndBillingCycle:
          type: string
          description: The term and billing cycle associated with this purchase.
          nullable: true
          example: 10K Read Operations
        unitType:
          type: string
          description: The type of the unit.
          nullable: true
          example: 1 Hour
        unitPriceForCustomer:
          type: number
          description: The unit price for customer.
          format: double
          nullable: true
          example: 2.72
        subtotalForCustomer:
          type: number
          description: The total before taxes for the customer.
          format: double
          nullable: true
          example: 2.72
        taxTotalForCustomer:
          type: number
          description: The tax value for the customer.
          format: double
          nullable: true
          example: 0
        totalForCustomer:
          type: number
          description: The total for customer after taxes.
          format: double
          nullable: true
          example: 2.72
        id:
          type: string
          description: The id that uniquely identifies a one time invoice line item.
          format: uuid
          example: 7828D90D-2AC6-4F20-A95B-EE850BCD32A0
        billableQuantity:
          type: number
          description: The amount of units billed.
          format: double
          example: 1
        billingFrequency:
          type: string
          description: |-
            The billing frequency of the subscription associated to the charge.
            Can also be empty.
          nullable: true
          example: Monthly
        pricingCurrency:
          type: string
          description: |-
            The currency of the UnitPriceForReseller and UnitPriceForCustomer.
            This currency may differ from the invoice billing currency.
          nullable: true
          example: USD
        productType:
          type: string
          description: |-
            The type of the offer associated with this charge.
            Possible values:
            - license.
            - softwaresubscription.
            - perpetualsoftware.
            - azureplan.
            - azurereservation.
            - azurelegacy.
            - azuresavingsplan.
          nullable: true
          example: license
        subscriptionStartDate:
          type: string
          description: |-
            The start date of billing for the subscription.
            This value can change once a subscription renews.
            If it renews, then on the next invoice this property is updated too.
          format: date-time
          nullable: true
          example: '2023-04-01T00:00:00'
        subscriptionEndDate:
          type: string
          description: The end date of the term of the subscription.
          format: date-time
          nullable: true
          example: '2023-04-30T23:59:59'
        offerProviderId:
          type: string
          description: "The offer id on the provider's side that identifies the \nsubscription
            associated to the charge."
          nullable: true
          example: DZH318Z0BQJ7:01DJ
        subscriptionProviderId:
          type: string
          description: The id of the subscription associated to this charge on the
            provider's side.
          nullable: true
          example: FA2A91FD-7286-4DCD-9718-20048CCA832A
        subscriptionPONumber:
          type: string
          description: The purchase order number of the subscription associated with
            this charge.
          nullable: true
          example: '8543943821'
        subscriptionName:
          type: string
          description: The friendly name of the subscription associated with this
            charge.
          nullable: true
        providerData:
          type: object
          additionalProperties:
            type: string
            nullable: true
          description: |-
            A dictionary that maps from strings to strings that contains specific provider invoice data.


            If this line item is associated to a Microsoft invoice then there are a set of properties that are common to each charge:
            **CustomerDomainName**: The domain of the customer.
            **ProductId**: The id of the product of the line item.
            **SkuId**: The id of the sku of the line item.
            **AvailabilityId**: The id of the availability of the line item.
            **ProductName**: The name of the product.
            **SkuName**: The name of the sku.
            **PublisherName**: The name of the publisher of the sku.
            **PublisherId**: The id of the publisher of the sku.
            **AlternateId**: The alternate id.
            **MeterDescription**: The description of the meter of the line item.


            The following properties only appear in some types of charges, see below:
            **ReservationOrderId**: For Azure Savings Plan this property corresponds to the savings plan order id on the Azure platform, example: "2D0D3389-D0D9-44D2-8BB4-441F5CD6D8CC". For Azure reservations this is the reservation order id, example: "8A05BC26-0542-4B6F-B97F-ECA5BAC54E9E".


            For **Azure savings plan** the properties are: ReservationOrderId.
            For **Azure reservation** the properties are: ReservationOrderId.
          nullable: true
          example:
            ReservationOrderId: A202A58B-7041-46EE-D5BC-2D0F6FD22106
      additionalProperties: false
      description: |-
        A model that represents a single charge of a one time invoice specific for Customers.
        In the case of the Microsoft provider this charge can be an:
        - Azure Plan,
        - Azure Savings Plan,
        - Azure Reservation,
        - New Commerce License Subscription,
        - Software Subscription,
        - Perpetual Software Subscription,
        - Marketplace Subscription.
    InvoiceOneTimeLineItemCustomerViewModelSeekBasedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/InvoiceOneTimeLineItemCustomerViewModel"
          description: The items in this particular seek operation.
          nullable: true
        continuationToken:
          type: string
          description: |-
            The token to continue to retrieve the paginated items.
            Should not be set if the first page of items is desired.
          nullable: true
      additionalProperties: false
      description: |-
        A helper class to be used by collections where we use a continuation token
        to obtain the next set of results.
    InvoiceOneTimeLineItemResellerViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id that uniquely identifies a one time invoice line item.
          format: uuid
          example: 7828D90D-2AC6-4F20-A95B-EE850BCD32A0
        subscriptionPONumber:
          type: string
          description: The purchase order number of the subscription associated with
            this charge.
          nullable: true
          example: '8543943821'
        customerId:
          type: string
          description: |-
            The id of the customer associated to this charge.
            Can be null.
          format: uuid
          nullable: true
          example: 2C741C83-E111-4A77-BC5F-C2F065275FA9
        customerName:
          type: string
          description: The company name of the customer.
          nullable: true
          example: Customer name
        customerInternalId:
          type: string
          description: The internal id of the customer associated with this charge.
          nullable: true
          example: CustomerTest
        subscriptionId:
          type: string
          description: |-
            The id of the subscription associated to the charge.
            Can be null.
          format: uuid
          nullable: true
          example: 03DE5ECE-EC93-42A9-8F15-9A770AC1F832
        subscriptionName:
          type: string
          description: The name of the subscription associated with the charge.
          nullable: true
          example: My friendly name
        subscriptionInternalId:
          type: string
          description: The internal id of the subscription associated with this charge.
          nullable: true
          example: SubscriptionTest
        offerProviderId:
          type: string
          description: "The offer id on the provider's side that identifies the \nsubscription
            associated to the charge."
          nullable: true
          example: DZH318Z0BQJ7:01DJ
        offerName:
          type: string
          description: The name of the offer associated to the subscription.
          nullable: true
          example: Azure Database for MySQL Single Server General Purpose - Compute
            Gen5, vCore, FR Central, 3 Years
        subscriptionProviderId:
          type: string
          description: The id of the subscription associated to this charge on the
            provider's side.
          nullable: true
          example: FA2A91FD-7286-4DCD-9718-20048CCA832A
        orderId:
          type: string
          description: The id that identifies the order associated to the charge.
          nullable: true
          example: bhhVi9rL4_vCEmrrPdc
        orderDate:
          type: string
          description: The date the order was placed.
          format: date-time
          nullable: true
          example: '2023-05-03T21:25:51.6916741'
        customerCountry:
          type: string
          description: The country in which the customer is located.
          nullable: true
          example: IE
        currency:
          type: string
          description: The currency associated with the line item.
          nullable: true
          example: EUR
        chargeType:
          type: string
          description: "The type of charge on this line item.\nPossible values for
            the Microsoft provider include:\n- new: When you buy a new subscription.\n-
            renew: When you renew your subscription.\n- cycleCharge: Regular recurring
            charges for your subscription.\n- addQuantity: Refunds and charges when
            you add seats.\n- removeQuantity: Refunds and charges when you remove
            seats.\n- moveQuantity: When you upgrade to an existing subscription.\n-
            cancelImmediate: When you cancel your subscription.\n- convert: \tWhen
            you change from a free trial to a paid subscription or upgrade to a new
            subscription.\n- changeBillingPlan: Changing from monthly to yearly billing
            or vice versa.\n- customerCredit: Credits for Azure, SLA, among others.\n-
            extendTerm: When you are given a longer trial period."
          nullable: true
          example: cycleCharge
        termAndBillingCycle:
          type: string
          description: The term and billing cycle associated with this purchase.
          nullable: true
          example: 10K Read Operations
        chargeStartDate:
          type: string
          description: The billing start date for this charge.
          format: date-time
          example: '2023-04-01T00:00:00'
        chargeEndDate:
          type: string
          description: The billing end date for this charge.
          format: date-time
          example: '2023-04-30T23:59:59'
        unitType:
          type: string
          description: The type of the unit.
          nullable: true
          example: 1 Hour
        unitPriceForReseller:
          type: number
          description: The unit price for reseller.
          format: double
          nullable: true
          example: 2.72
        unitPriceForCustomer:
          type: number
          description: The unit price for customer.
          format: double
          nullable: true
          example: 2.72
        quantity:
          type: number
          description: The quantity of the subscription associated to the charge.
          format: double
          example: 4
        subtotalForReseller:
          type: number
          description: The total before taxes for the reseller.
          format: double
          nullable: true
          example: 2.72
        subtotalForCustomer:
          type: number
          description: The total before taxes for the customer.
          format: double
          nullable: true
          example: 2.72
        taxForReseller:
          type: number
          description: The tax value for the reseller.
          format: double
          nullable: true
          example: 0
        taxForCustomer:
          type: number
          description: The tax value for the customer.
          format: double
          nullable: true
          example: 0
        totalForReseller:
          type: number
          description: The total for reseller after taxes.
          format: double
          nullable: true
          example: 2.72
        totalForCustomer:
          type: number
          description: The total for customer after taxes.
          format: double
          nullable: true
          example: 2.72
        customerProviderId:
          type: string
          description: The id of customer on the provider's side associated to this
            charge.
          nullable: true
          example: CB0A371A-046A-46A9-A299-96BD755E67A8
        pricingCurrency:
          type: string
          description: |-
            The currency of the UnitPriceForReseller and UnitPriceForCustomer.
            This currency may differ from the invoice billing currency.
          nullable: true
          example: USD
        billingFrequency:
          type: string
          description: |-
            The billing frequency of the subscription associated to the charge.
            Can also be empty.
          nullable: true
          example: Monthly
        billableQuantity:
          type: number
          description: The amount of units billed.
          format: double
          example: 1
        customerPriceMargin:
          type: number
          description: The customer price margin according to CustomerPriceMarginRule.
          format: double
          nullable: true
          example: 0
        customerPriceMarginRule:
          type: string
          description: 'The customer price margin rule. The possible values are: markup,
            margin, splitmargin and erpminusdiscount.'
          nullable: true
          example: erpminusdiscount
        subscriptionPriceMargin:
          type: number
          description: The subscription price margin according to SubscriptionPriceMarginRule.
          format: double
          nullable: true
        subscriptionPriceMarginRule:
          type: string
          description: The subscription price margin rule.
          nullable: true
          example: ''
        providerData:
          type: object
          additionalProperties:
            type: string
            nullable: true
          description: |-
            A dictionary that maps from strings to strings that contains specific provider invoice data.


            If this line item is associated to a Microsoft invoice then there are a set of properties that are common to each charge:
            **CustomerDomainName**: The domain of the customer.
            **ProductId**: The id of the product of the line item.
            **SkuId**: The id of the sku of the line item.
            **AvailabilityId**: The id of the availability of the line item.
            **ProductName**: The name of the product.
            **SkuName**: The name of the sku.
            **PublisherName**: The name of the publisher of the sku.
            **PublisherId**: The id of the publisher of the sku.
            **AlternateId**: The alternate id.
            **MeterDescription**: The description of the meter of the line item.


            The following properties only appear in some types of charges, see below:
            **ReservationOrderId**: For Azure Savings Plan this property corresponds to the savings plan order id on the Azure platform, example: "2D0D3389-D0D9-44D2-8BB4-441F5CD6D8CC". For Azure reservations this is the reservation order id, example: "8A05BC26-0542-4B6F-B97F-ECA5BAC54E9E".


            For **Azure savings plan** the properties are: ReservationOrderId.
            For **Azure reservation** the properties are: ReservationOrderId.
          nullable: true
          example:
            ReservationOrderId: A202A58B-7041-46EE-D5BC-2D0F6FD22106
        subscriptionStartDate:
          type: string
          description: |-
            The start date of billing for the subscription.
            This value can change once a subscription renews.
            If it renews, then on the next invoice this property is updated too.
          format: date-time
          nullable: true
          example: '2023-04-01T00:00:00'
        subscriptionEndDate:
          type: string
          description: The end date of the term of the subscription.
          format: date-time
          nullable: true
          example: '2023-04-30T23:59:59'
        productType:
          type: string
          description: |-
            The type of the offer associated with this charge.
            Possible values:
            - license.
            - softwaresubscription.
            - perpetualsoftware.
            - azureplan.
            - azurereservation.
            - azurelegacy.
            - azuresavingsplan.
          nullable: true
          example: license
      additionalProperties: false
      description: |-
        A model that represents a single charge of a one time invoice specific for Resellers.
        In the case of the Microsoft provider this charge can be an:
        - Azure Plan,
        - Azure Savings Plan,
        - Azure Reservation,
        - New Commerce License Subscription,
        - Software Subscription,
        - Perpetual Software Subscription,
        - Marketplace Subscription.
    InvoiceOneTimeLineItemResellerViewModelSeekBasedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/InvoiceOneTimeLineItemResellerViewModel"
          description: The items in this particular seek operation.
          nullable: true
        continuationToken:
          type: string
          description: |-
            The token to continue to retrieve the paginated items.
            Should not be set if the first page of items is desired.
          nullable: true
      additionalProperties: false
      description: |-
        A helper class to be used by collections where we use a continuation token
        to obtain the next set of results.
    InvoiceStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The possible values that an Invoice can go through: Processing,
        Completed, Failed.'
    InvoiceUsageLineItemResellerViewModel:
      type: object
      properties:
        customerId:
          type: string
          description: |-
            The id of the customer associated to this charge.
            Can be null, for example when the CSP removed the relationship with the customer on the provider side
            and the customer wasn't in our system when that happened.
          format: uuid
          nullable: true
          example: 2C741C83-E111-4A77-BC5F-C2F065275FA9
        customerCompanyName:
          type: string
          description: The company name of the customer.
          nullable: true
          example: Customer test
        domainName:
          type: string
          description: The domain of the customer associated with the charge.
          nullable: true
          example: test@pte.onmicrosoft.com
        customerInternalId:
          type: string
          description: The internal id of the customer associated with this charge.
          nullable: true
          example: CustomerTest
        orderId:
          type: string
          description: The id that identifies the order associated with the charge.
          nullable: true
          example: '168579460714324057'
        subscriptionId:
          type: string
          description: |-
            The id of the subscription associated with the charge.
            Can be null, for example when the CSP removed the relationship with the customer on the provider side
            and the subscription wasn't in our system when that happened.
          format: uuid
          nullable: true
          example: 03DE5ECE-EC93-42A9-8F15-9A770AC1F832
        subscriptionName:
          type: string
          description: The name of the subscription associated with the charge.
          nullable: true
          example: Azure subscription
        subscriptionDescription:
          type: string
          description: The description of the subscription associated with the charge.
          nullable: true
          example: Azure
        subscriptionInternalId:
          type: string
          description: The internal id of the subscription associated with this charge.
          nullable: true
          example: SubscriptionTest
        offerId:
          type: string
          description: The id of the offer associated with the charge in CloudCockpit.
          format: uuid
          nullable: true
          example: 607b94ab-27d3-4ce7-a0af-91db5c930ffc
        offerProviderId:
          type: string
          description: "The offer id on the provider's side that identifies the \nsubscription
            associated with the charge."
          nullable: true
          example: 9DBADD95-5F52-454F-9002-C666A8AFF87D
        offerName:
          type: string
          description: The name of the offer associated with the subscription.
          nullable: true
          example: Hot GRS Write Operations - Tiered Block Blob
        chargeStartDate:
          type: string
          description: The billing start date for this charge.
          format: date-time
          example: '2023-04-01T00:00:00'
        chargeEndDate:
          type: string
          description: The billing end date for this charge.
          format: date-time
          example: '2023-04-30T23:59:59'
        chargeType:
          type: string
          description: |-
            The type of charge on this line item.
            Possible values include:
            - Assess usage fee for current cycle: Access usage fee for the current billing period.
            - Assess usage fee when cancel: Access usage fee upon cancellation for unpaid usage during the current billing period.
          nullable: true
          example: Assess usage fee for current cycle
        serviceName:
          type: string
          description: The name of the service associated with the line item.
          nullable: true
          example: Azure Data Factory v2
        serviceType:
          type: string
          description: The type of the service associated with the line item.
          nullable: true
          example: ''
        resourceGuid:
          type: string
          description: The identifier of the resource associated with the charge.
          nullable: true
          example: 9d6f5dbf-90a1-46bc-85b7-e9c3f92bae35
        resourceName:
          type: string
          description: The name of the resource associated with the charge.
          nullable: true
          example: Cloud Data Movement
        region:
          type: string
          description: The region associated with the charge.
          nullable: true
          example: IE
        sku:
          type: string
          description: The sku associated with the charge.
          nullable: true
          example: 7UD-00001
        detailLineItemId:
          type: integer
          description: The id of the line item from the provider side.
          format: int32
          example: 1
        consumedQuantity:
          type: number
          description: The consumed quantity of the resource.
          format: double
          example: 146.6
        overageQuantity:
          type: number
          description: The overage quantity of the line item.
          format: double
          example: 146.6
        includedQuantity:
          type: number
          description: The quantity that is included free of charge on this line item.
          format: double
          example: 0
        currency:
          type: string
          description: The currency of the line item.
          nullable: true
          example: EUR
        unit:
          type: string
          description: The unit of charge associated with the line item, for example
            GB or Months.
          nullable: true
          example: 10K
        listPriceForReseller:
          type: number
          description: The price of each unit for the reseller.
          format: double
          nullable: true
          example: 0.18473412
        listPriceForCustomer:
          type: number
          description: The price of each unit for customer (with reseller and customer
            margin).
          format: double
          nullable: true
          example: 0.21082354
        subtotalForReseller:
          type: number
          description: The cost the reseller pays for the subscription on this charge
            before taxes.
          format: double
          nullable: true
          example: 27.082022
        subtotalForCustomer:
          type: number
          description: The price the customer pays for the subscription on this charge
            before taxes.
          format: double
          nullable: true
          example: 30.906729
        taxesForReseller:
          type: number
          description: The taxes the resellers pays for the subscription on this charge.
          format: double
          nullable: true
          example: 0
        taxesForCustomer:
          type: number
          description: The taxes the customer pays for the subscription on this charge.
          format: double
          nullable: true
          example: 0
        totalForReseller:
          type: number
          description: The cost the reseller pays for the subscription on this charge
            after taxes.
          format: double
          nullable: true
          example: 27.082022
        totalForCustomer:
          type: number
          description: The price the customer pays for the subscription on this charge
            after taxes.
          format: double
          nullable: true
          example: 30.906729
        customerProviderId:
          type: string
          description: The id of customer on the provider's side associated with the
            charge.
          nullable: true
          example: CB0A371A-046A-46A9-A299-96BD755E67A8
        subscriptionProviderId:
          type: string
          description: The id of the subscription associated to this charge on the
            provider's side.
          nullable: true
          example: FA2A91FD-7286-4DCD-9718-20048CCA832A
        subscriptionPONumber:
          type: string
          description: The purchase order number of the subscription associated with
            this charge.
          nullable: true
          example: '8543943821'
        id:
          type: string
          description: The id that uniquely identifies a usage invoice line item.
          format: uuid
          example: 7828D90D-2AC6-4F20-A95B-EE850BCD32A0
        billingCycleType:
          type: string
          description: The billing cycle of the subscription associated with charge.
          nullable: true
          example: Monthly
        customerPriceMargin:
          type: number
          description: The customer price margin according to the CustomerPriceMarginRule.
          format: double
          nullable: true
          example: 0
        customerPriceMarginRule:
          type: string
          description: 'The customer price margin rule. The possible values are: markup,
            margin, splitmargin and erpminusdiscount.'
          nullable: true
          example: erpminusdiscount
        subscriptionPriceMargin:
          type: number
          description: The subscription price margin according to the SubscriptionPriceMarginRule.
          format: double
          nullable: true
        subscriptionPriceMarginRule:
          type: string
          description: 'The subscription price margin rule. The possible values are:
            markup, margin, splitmargin and erpminusdiscount.'
          nullable: true
          example: ''
        providerData:
          type: object
          additionalProperties:
            type: string
            nullable: true
          description: |+
            A dictionary that maps from strings to strings that contains specific provider invoice data.


            If this line item is associated to a Microsoft invoice then the possible values are:
            **ServiceName**: The name of the service associated with the charge. For example: "Storage".

          nullable: true
          example:
            ServiceName: Storage
      additionalProperties: false
      description: |-
        A model that represents a single charge of a usage invoice.
        In the case of the Microsoft provider each line item represents an **Azure legacy** charge.
    InvoiceUsageLineItemResellerViewModelSeekBasedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/InvoiceUsageLineItemResellerViewModel"
          description: The items in this particular seek operation.
          nullable: true
        continuationToken:
          type: string
          description: |-
            The token to continue to retrieve the paginated items.
            Should not be set if the first page of items is desired.
          nullable: true
      additionalProperties: false
      description: |-
        A helper class to be used by collections where we use a continuation token
        to obtain the next set of results.
    InvoiceViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id of the invoice in CloudCockpit.
          format: uuid
          example: a393f55e-8249-47a5-b11f-80c8dc7905c9
        providerInstanceId:
          type: string
          description: The id of the provider instance where the invoice was issued.
          format: uuid
          example: a393f55e-8249-47a5-b11f-80c8dc7905c9
        providerInstanceName:
          type: string
          description: The name of the provider instance where the invoice was issued.
          nullable: true
          example: Microsoft Tier 1
        currency:
          type: string
          description: The invoice billing currency.
          nullable: true
          example: EUR
        subtotal:
          type: number
          description: The sum of the subtotal of line items of the invoice.
          format: double
          example: 123
        type:
          type: string
          description: 'The invoice type. Possible values: onetime, usage, license
            and dailyratedusage.'
          nullable: true
          example: license
        invoiceDate:
          type: string
          description: The date and time of when the invoice was issued.
          format: date-time
          example: '2023-03-03 18:06:57.5533333'
        invoiceProviderId:
          type: string
          description: The id of the invoice in the provider's side.
          nullable: true
          example: G017942997
        invoiceLineItemsFile:
          "$ref": "#/components/schemas/InvoiceLineItemsFileViewModel"
        status:
          "$ref": "#/components/schemas/InvoiceStatus"
      additionalProperties: false
      description: View model that represents a invoice.
    InvoiceViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/InvoiceViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    MarginRule:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The margin rule applied. Possible values: Markup, Margin, SplitMargin
        or ErpMinusDiscount'
    McaStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
    MicrosoftCustomerAgreementViewModel:
      type: object
      properties:
        customerId:
          type: string
          description: Gets or sets the unique identifier of the customer.
          format: uuid
        providerCustomerId:
          type: string
          description: Gets or sets the provider-specific customer identifier associated
            with this MCA.
          nullable: true
        companyName:
          type: string
          description: Gets or sets the company name associated with the customer.
          nullable: true
        providerInstanceId:
          type: string
          description: Gets or sets the unique identifier of the provider instance.
          format: uuid
        providerInstanceName:
          type: string
          description: Gets or sets the display name of the provider instance.
          nullable: true
        firstName:
          type: string
          description: Gets or sets the first name of the primary contact associated
            with this MCA.
          nullable: true
        lastName:
          type: string
          description: Gets or sets the last name of the primary contact associated
            with this MCA.
          nullable: true
        email:
          type: string
          description: Gets or sets the email address of the primary contact associated
            with this MCA.
          nullable: true
        phone:
          type: string
          description: Gets or sets the phone number of the primary contact associated
            with this MCA.
          nullable: true
        status:
          "$ref": "#/components/schemas/McaStatus"
        attestationId:
          type: string
          description: Gets or sets the attestation identifier associated with this
            MCA.
          nullable: true
        lastUpdate:
          type: string
          description: Gets or sets the date and time of the most recent update to
            this MCA.
          format: date-time
          nullable: true
        dateAgreed:
          type: string
          description: |-
            Gets or sets the date and time when the MCA was agreed upon.
            This value is `null` unless the status is Microsoft.Domain.Customers.Enumerations.McaStatus.AgreementCreated.
          format: date-time
          nullable: true
        customer:
          "$ref": "#/components/schemas/CustomerViewModel"
        microsoftProviderCustomer:
          "$ref": "#/components/schemas/MicrosoftProviderCustomerViewModel"
      additionalProperties: false
      description: Represents a Microsoft Customer Agreement (MCA) and its related
        presentation data.
    MicrosoftCustomerAgreementViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    MicrosoftProviderCustomerViewModel:
      type: object
      allOf:
      - "$ref": "#/components/schemas/ProviderCustomerViewModel"
      properties:
        microsoftCustomerAgreement:
          "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
      additionalProperties: false
    MigrateSubscriptionRequest:
      type: object
      properties:
        purchaseFullTerm:
          type: boolean
          description: The value indicating whether [purchase full term].
        quantity:
          type: integer
          description: The quantity.
          format: int32
        termDuration:
          type: string
          description: 'The term duration. Possible values include: NoTerm, OneMonth,
            OneYear, ThreeYears or FiveYears'
          nullable: true
        billingFrequency:
          type: string
          description: 'The billing frequency. Possible values include: OneTime, Monthly,
            Annual, Triennial or None.'
          nullable: true
      additionalProperties: false
    MigrationStatusViewModel:
      type: object
      properties:
        isCompleted:
          type: boolean
          description: The value indicating whether this subscription migration is
            completed or not.
        subscriptionId:
          type: string
          description: The Id of the current subscription.
          format: uuid
        destinationSubscriptionId:
          type: string
          description: The Id of the destination subscription. Only populated when
            migration is completed.
          format: uuid
          nullable: true
        destinationProviderSubscriptionId:
          type: string
          description: The provider Id of the destination subscription. Only populated
            when migration is completed.
          nullable: true
      additionalProperties: false
    NotFoundErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          description: The HTTP status code that represents a specific error scenario.
          format: int32
          readOnly: true
          example: 404
        type:
          type: string
          description: The type of error that occurred.
          nullable: true
          readOnly: true
          example: EntityNotFoundException
        description:
          type: string
          description: Describes the error scenario that occurred.
          nullable: true
          readOnly: true
          example: No providers found for the tenant.
        correlationId:
          type: string
          description: The correlationId of the request that originated the error.
          nullable: true
          readOnly: true
          example: 685043EA-6D49-4ACE-8BDB-CCE9D3E2DBD0
      additionalProperties: false
      description: An example of the API response when an HTTP not found happens.
    OfferListItem:
      type: object
      properties:
        id:
          type: string
          description: GUID Unique identifier for the offer.
          format: uuid
        name:
          type: string
          description: The name of the offer.
          nullable: true
        description:
          type: string
          description: The offer description.
          nullable: true
        imageUrl:
          type: string
          description: The offer image URL.
          nullable: true
        offerType:
          "$ref": "#/components/schemas/OfferType"
        billingType:
          "$ref": "#/components/schemas/BillingType"
        price:
          "$ref": "#/components/schemas/OfferPriceViewModel"
        providerName:
          type: string
          description: The name of the provider this offer belongs to.
          nullable: true
        isAddon:
          type: boolean
          description: The value indicating whether this offer is an addon.
        providerOfferId:
          type: string
          description: The provider's offer identifier.
          nullable: true
        isDeleted:
          type: boolean
          description: A Value indicating whether this offer is deleted and cannot
            be provisioned.
        termOfferPrices:
          type: array
          items:
            "$ref": "#/components/schemas/TermOfferPriceViewModel"
          description: The offer prices for each term
          nullable: true
        isDisabled:
          type: boolean
          description: A Value indicating whether this offer is disabled and cannot
            be provisioned.
      additionalProperties: false
      description: View model that represents an offer item for listing purposes.
    OfferListItemPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/OfferListItem"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    OfferPriceViewModel:
      type: object
      properties:
        termDuration:
          "$ref": "#/components/schemas/TermDuration"
        segment:
          "$ref": "#/components/schemas/Segment"
        region:
          "$ref": "#/components/schemas/CountryCode"
        billingFrequencies:
          type: array
          items:
            "$ref": "#/components/schemas/BillingFrequency"
          description: The offer price Billing Frequencies.
          nullable: true
        costPrice:
          "$ref": "#/components/schemas/Price"
        revenuePrice:
          "$ref": "#/components/schemas/Price"
        erpPrice:
          "$ref": "#/components/schemas/Price"
      additionalProperties: false
      description: View model that represents an offer price.
    OfferType:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The offer type. Possible values: License, LicenseLegacy, SoftwareSubscription,
        PerpetualSoftware, AzurePlan, AzureReservation, AzureLegacy or AzureSavingsPlan.'
    OfferViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id of the offer.
          format: uuid
        name:
          type: string
          description: The name of the offer.
          nullable: true
        description:
          type: string
          description: The offer description.
          nullable: true
        imageUrl:
          type: string
          description: The offer image URL.
          nullable: true
        offerType:
          "$ref": "#/components/schemas/OfferType"
        billingType:
          "$ref": "#/components/schemas/BillingType"
        prices:
          type: array
          items:
            "$ref": "#/components/schemas/OfferPriceViewModel"
          description: The offer prices.
          nullable: true
        providerName:
          type: string
          description: The offer provider name.
          nullable: true
        providerInstanceId:
          type: string
          description: The provider's instance identifier.
          format: uuid
          nullable: true
        isAddon:
          type: boolean
          description: The value indicating whether this offer is addon.
        minQuantity:
          type: integer
          description: The minimum quantity for this offer.
          format: int32
        maxQuantity:
          type: integer
          description: The maximum quantity for this offer.
          format: int32
        hasPreRequisites:
          type: boolean
          description: The value indicating whether this offer has pre requisite offers.
        preRequisites:
          type: array
          items:
            type: string
          description: The list of pre requisite offers ids.
          nullable: true
        isTrial:
          type: boolean
          description: The value indicating whether this offer is a trial.
        providerOfferId:
          type: string
          description: The provider's offer identifier.
          nullable: true
        isDeleted:
          type: boolean
          description: A Value indicating whether this offer is deleted and cannot
            be provisioned.
      additionalProperties: false
      description: View model that represents an Offer.
    OrderOperationType:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The order operation type. Possible values: CreateSubscription'
    OrderStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The status of the order. Possible values: Processing, Provisioning,
        Completed or Failed'
    OrderViewModel:
      required:
      - billingFrequency
      - customerId
      - offerId
      - operation
      - providerInstanceId
      - quantity
      - segment
      - status
      - subscriptionName
      - termDuration
      type: object
      properties:
        id:
          type: string
          description: The GUID identifier for the order.
          format: uuid
        offerId:
          type: string
          description: The GUID identifier for the offer.
          format: uuid
        customerId:
          type: string
          description: The GUID identifier for the customer.
          format: uuid
        resellerId:
          type: string
          description: The GUID identifier for the reseller.
          format: uuid
          nullable: true
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        subscriptionName:
          type: string
          description: The name to set in the subscription created by this order.
            This may be up to 255 characters.
          nullable: true
        termDuration:
          "$ref": "#/components/schemas/TermDuration"
        billingFrequency:
          "$ref": "#/components/schemas/BillingFrequency"
        segment:
          "$ref": "#/components/schemas/Segment"
        operation:
          "$ref": "#/components/schemas/OrderOperationType"
        quantity:
          type: integer
          description: The quantity of licenses to provision for this order.
          format: int32
        subscriptionMargin:
          "$ref": "#/components/schemas/PriceMargin"
        subscriptionInternalId:
          type: string
          description: The internal identifier to set in the subscription created
            by this order. This may be up to 255 characters.
          nullable: true
        poNumber:
          type: string
          description: The po number to set in the subscription created by this order.
            This may be up to 255 characters.
          nullable: true
        autoRenewEnabled:
          type: boolean
          description: The flag indicating if we want to create the subscription in
            this order with auto renew enabled or not.
        status:
          "$ref": "#/components/schemas/OrderStatus"
        createdDate:
          type: string
          description: The date in which this order was created.
          format: date-time
        providerData:
          type: string
          description: |-
            The provider specific data for this order.
            For generic provider subscriptions, this should not be set.
          nullable: true
        parentSubscriptionId:
          type: string
          description: The GUID identifier for the parent subscription of this order.
          format: uuid
          nullable: true
        errorMessage:
          type: string
          description: The error message if status is failed.
          nullable: true
      additionalProperties: false
      description: View model that represents an order.
    OrderViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/OrderViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    PaginationParameters:
      type: object
      properties:
        pageNumber:
          type: integer
          description: Indicates the number of the current page.
          format: int32
          readOnly: true
        pageSize:
          type: integer
          description: The number of items that should be returned at most per page.
          format: int32
          readOnly: true
      additionalProperties: false
      description: A model that is used to encapsulate the parameters needed to perform
        pagination queries.
    Price:
      type: object
      properties:
        value:
          type: number
          description: The price value.
          format: double
          readOnly: true
        currency:
          "$ref": "#/components/schemas/Currency"
      additionalProperties: false
    PriceMargin:
      required:
      - marginRule
      - value
      type: object
      properties:
        marginRule:
          "$ref": "#/components/schemas/MarginRule"
        value:
          type: number
          description: |-
            The value applied to this price margin.
            Should not be below 0 or above 999.
          format: double
          nullable: true
          readOnly: true
          example: 8
      additionalProperties: false
      description: This value object contains the price margin for this entity.
    ProviderCustomerViewModel:
      required:
      - margin
      - providerCustomerData
      - providerInstanceId
      type: object
      properties:
        providerName:
          type: string
          description: |-
            The name of the provider associated with this customer. Possible values are 'Microsoft' and 'Generic'.
            This property is used for polymorphic JSON serialization.
          nullable: true
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        providerCustomerId:
          type: string
          description: The identifier for customer on the provider. This property
            will only be populated after a customer is successfully created on the
            provider.
          nullable: true
        providerCustomerData:
          type: string
          description: The provider specific data for this customer.
          nullable: true
        margin:
          "$ref": "#/components/schemas/PriceMargin"
        offerTypeMargins:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/PriceMargin"
          description: |-
            Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance.
            Price margins applied at the offer type level will override the price margin applied at the provider instance level.
            If no price margin is applied to a specific offer type of this provider instance then it will not be in the dictionary.
            This dictionary is optional.
          nullable: true
        status:
          "$ref": "#/components/schemas/EntityStatus"
        customerCreationError:
          "$ref": "#/components/schemas/CustomerCreationError"
      additionalProperties: false
      description: Represents a customer associated with a specific provider.
    ProviderInstanceViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id of the instance.
          format: uuid
          readOnly: true
        alias:
          type: string
          description: Alias for the instance of the provider.
          nullable: true
          readOnly: true
        instanceProviderId:
          type: string
          description: The id that identifies the instance on the providers side
          nullable: true
          readOnly: true
        imageUrl:
          type: string
          description: The provider instance image url.
          nullable: true
          readOnly: true
        offerTypes:
          type: array
          items:
            "$ref": "#/components/schemas/OfferType"
          description: The list of offer types that the provider instance allows selling.
          nullable: true
          readOnly: true
        supportedCountries:
          uniqueItems: true
          type: array
          items:
            type: string
          description: Contains all the supported countries available for the provider
            instance.
          nullable: true
        providerData:
          type: string
          description: The provider instance data.
          nullable: true
          readOnly: true
        provider:
          "$ref": "#/components/schemas/ProviderViewModel"
      additionalProperties: false
      description: View model that represents a provider's instance.
    ProviderInstanceViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/ProviderInstanceViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    ProviderResellerViewModel:
      required:
      - priceMargin
      - providerInstanceId
      - resellerProviderData
      type: object
      properties:
        providerInstanceId:
          type: string
          description: |-
            The id of the provider instance to which the reseller with ResellerId is associated to.
            Must always be set.
          format: uuid
          example: a393f55e-8249-47a5-b11f-80c8dc7905c9
        priceMargin:
          "$ref": "#/components/schemas/PriceMargin"
        offerTypeMargins:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/PriceMargin"
          description: |-
            Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance.
            Price margins applied at the offer type level will override the price margin applied at the provider instance level.
            If no price margin is applied to a specific offer type of this provider instance then it will not be in the dictionary.
            This dictionary is optional.
          nullable: true
          example:
            license:
              marginRule:
                name: markup
              value: 6
        providerResellerId:
          type: string
          description: |-
            An id that identifies the reseller has on the provider instance.
            For a Microsoft Tier 2 provider instance set ProviderResellerId to the primary mpn id of the reseller,
            which is the mpn id that will be used for new subscription purchases.
            When adding a provider instance to a reseller for a Microsoft Tier 1 environment or a generic provider,
            don't pass this property on the creation request.
          nullable: true
          example: '123'
        resellerProviderData:
          type: string
          description: |-
            A json formatted string which contains specific data for the reseller association to the provider instance.
            For Microsoft Tier 1 resellers, this property can be a empty json: "{}".
            On Microsoft Tier 2 resellers, this property will be a json with the following format:
            {"IndirectResellerId":string,"SecondaryMpnIds":string[]}
          nullable: true
          example: 'JSON Object: {"IndirectResellerId":null,"SecondaryMpnIds":["123"]}'
        status:
          "$ref": "#/components/schemas/EntityStatus"
      additionalProperties: false
    ProviderViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id of the provider.
          format: uuid
          readOnly: true
        name:
          type: string
          description: The name of the provider.
          nullable: true
          readOnly: true
        description:
          type: string
          description: The description of the provider.
          nullable: true
          readOnly: true
        imageUrl:
          type: string
          description: The url that points to the image that represents the provider.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: The viewmodel for the Provider entity.
    Qualification:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
    ResellerCustomDomainViewModel:
      type: object
      properties:
        customDomain:
          type: string
          description: The custom domain value.
          nullable: true
        status:
          "$ref": "#/components/schemas/CustomDomainStatus"
      additionalProperties: false
    ResellerViewModel:
      required:
      - addressLine1
      - city
      - companyName
      - country
      - email
      - firstName
      - lastName
      - phone
      - providerResellers
      - state
      - zipCode
      type: object
      properties:
        id:
          type: string
          description: The reseller Id.
          format: uuid
        companyName:
          type: string
          description: The name of the company associated to the reseller. This may
            be up to 255 characters.
          nullable: true
        country:
          type: string
          description: The company country. Must be in standard iso 3166-1 alpha 2.
          nullable: true
        addressLine1:
          type: string
          description: The company address line 1. This may be up to 255 characters.
          nullable: true
        addressLine2:
          type: string
          description: The company address line 2. This may be up to 255 characters.
          nullable: true
        city:
          type: string
          description: The company city. This may be up to 255 characters.
          nullable: true
        state:
          type: string
          description: The company state. This may be up to 255 characters.
          nullable: true
        zipCode:
          type: string
          description: The company ZIP. Should be a valid zip according to the company
            country. This may be up to 30 characters.
          nullable: true
        firstName:
          type: string
          description: The company primary contact first name. This may be up to 255
            characters.
          nullable: true
        lastName:
          type: string
          description: The company primary contact last name. This may be up to 255
            characters.
          nullable: true
        email:
          type: string
          description: The company primary contact email. This may be up to 255 characters.
          nullable: true
        phone:
          type: string
          description: The company primary contact phone. Should be a valid phone
            according to the company country. This may be up to 30 characters.
          nullable: true
        internalIdentifier:
          type: string
          description: The company internal identifier. This may be up to 255 characters.
          nullable: true
        taxId:
          type: string
          description: The tax id of the company. This may be up to 255 characters.
          nullable: true
        providerResellers:
          type: array
          items:
            "$ref": "#/components/schemas/ProviderResellerViewModel"
          description: The provider resellers. A list containing the info about this
            reseller in one or more provider instances.
          nullable: true
          example:
            providerInstanceId: cb3cd15b-1d6e-45be-b493-c71549cbfd87
            providerResellerId: 968bd16f-7eca-494d-b29f-440b9ef5cf5d
            priceMargin:
              marginRule:
                name: markup
              value: 8
            offerTypeMargins:
              Value:
                license:
                  MarginRule:
                    Name: markup
                  Value: 10
            resellerProviderData: '{"indirectResellerId" : "f94f06fd-dc98-47fb-bd49-63bc98bd87f2","secondaryMpnIds":
              [ "123456", "654321"]}'
        customDomain:
          "$ref": "#/components/schemas/ResellerCustomDomainViewModel"
      additionalProperties: false
      description: View model that represents a reseller.
    ScheduledBillingFrequency:
      type: object
      properties:
        scheduledDate:
          type: string
          description: The schedule date to change billing frequency, it is also the
            current billing cycle end date
          format: date-time
          nullable: true
          readOnly: true
        billingFrequency:
          "$ref": "#/components/schemas/BillingFrequency"
      additionalProperties: false
    Segment:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The offer segment. Possible values: Commercial, Education, Government
        or NonProfit'
    SetMonthlyBudgetRequest:
      type: object
      properties:
        monthlyBudget:
          type: number
          description: The new monthly budget to set in the azure subscription relationship.
            Can be null, to set no budget.
          format: double
          nullable: true
      additionalProperties: false
    StartMcaAttestationViewModel:
      type: object
      properties:
        firstName:
          type: string
          description: The first name of the signatory
          nullable: true
        lastName:
          type: string
          description: The last name of the signatory
          nullable: true
        email:
          type: string
          description: The email address of the signatory
          nullable: true
        phone:
          type: string
          description: The phone number of the signatory
          nullable: true
        expirationTime:
          type: integer
          description: The expiration time in minutes for the attestation link. Must
            be between 5 and 10080.
          format: int32
      additionalProperties: false
      description: Represents the information related to a Microsoft Customer Agreement
        (MCA).
    SubscriptionBaseInfoViewModel:
      required:
      - name
      - nextBillingFrequency
      - quantity
      type: object
      properties:
        name:
          type: string
          description: The name of the subscription. This may be up to 255 characters.
          nullable: true
        quantity:
          type: integer
          description: The quantity.
          format: int32
        nextBillingFrequency:
          "$ref": "#/components/schemas/BillingFrequency"
        autoRenewEnabled:
          type: boolean
          description: "`true` if [automatic renew enabled]; otherwise, `false`."
        autoRenewSettings:
          "$ref": "#/components/schemas/AutoRenewSettings"
      additionalProperties: false
      description: The viewmodel for the subscription base info.
    SubscriptionConflictCheckInfoViewModel:
      required:
      - endDate
      - name
      - nextBillingFrequency
      - quantity
      - status
      type: object
      properties:
        name:
          type: string
          description: The name of the subscription. This may be up to 255 characters.
          nullable: true
        quantity:
          type: integer
          description: The quantity.
          format: int32
        nextBillingFrequency:
          "$ref": "#/components/schemas/BillingFrequency"
        autoRenewEnabled:
          type: boolean
          description: "`true` if [automatic renew enabled]; otherwise, `false`."
        autoRenewSettings:
          "$ref": "#/components/schemas/AutoRenewSettings"
        endDate:
          type: string
          description: End date of subscription.
          format: date-time
        status:
          "$ref": "#/components/schemas/SubscriptionStatus"
      additionalProperties: false
      description: The viewmodel for checking subscription conflict.
    SubscriptionListItem:
      type: object
      properties:
        id:
          type: string
          description: The id of the subscription.
          format: uuid
        orderId:
          type: string
          description: The order id of the subscription.
          format: uuid
          readOnly: true
        offerId:
          type: string
          description: The offer id of the subscription.
          format: uuid
          readOnly: true
        customerId:
          type: string
          description: The customer id of the subscription.
          format: uuid
          readOnly: true
        providerInstanceId:
          type: string
          description: The provider instance id of the subscription.
          format: uuid
          readOnly: true
        resellerId:
          type: string
          description: The reseller id of the subscription.
          format: uuid
          nullable: true
          readOnly: true
        subscriptionName:
          type: string
          description: The friendly name of the subscription.
          nullable: true
        offerName:
          type: string
          description: The name of the subscription.
          nullable: true
        offerType:
          "$ref": "#/components/schemas/OfferType"
        isAddonOffer:
          type: boolean
          description: The value indicating if the subscription offer is addon.
        isTrialOffer:
          type: boolean
          description: The value indicating if the subscription offer is trial.
        providerOfferId:
          type: string
          description: The provider offer identifier.
          nullable: true
        subscriptionStatus:
          "$ref": "#/components/schemas/SubscriptionStatus"
        startDate:
          type: string
          description: The start date of the subscription.
          format: date-time
        endDate:
          type: string
          description: The end date of the subscription.
          format: date-time
        cancellationAllowedUntil:
          type: string
          description: The limit date to cancelled the subscription.
          format: date-time
          nullable: true
        quantity:
          type: integer
          description: The quantity of the subscription.
          format: int32
        assignedLicenses:
          type: integer
          description: The quantity of the subscription.
          format: int32
          nullable: true
        listPrice:
          type: object
          properties:
            value:
              type: number
              description: The price value.
              format: double
              readOnly: true
            currency:
              "$ref": "#/components/schemas/Currency"
          additionalProperties: false
          description: The list price of the subscription. This value represents the
            cost price for the whole term of the subscription.
        revenuePrice:
          type: object
          properties:
            value:
              type: number
              description: The price value.
              format: double
              readOnly: true
            currency:
              "$ref": "#/components/schemas/Currency"
          additionalProperties: false
          description: The revenue price of the subscription. This value represents
            the revenue price for the whole term of the subscription.
        erpPrice:
          type: object
          properties:
            value:
              type: number
              description: The price value.
              format: double
              readOnly: true
            currency:
              "$ref": "#/components/schemas/Currency"
          additionalProperties: false
          description: The erp price of the subscription. This value represents the
            erp price for the whole term of the subscription.
        customMargin:
          "$ref": "#/components/schemas/PriceMargin"
        billingFrequency:
          "$ref": "#/components/schemas/BillingFrequency"
        billingType:
          "$ref": "#/components/schemas/BillingType"
        termDuration:
          "$ref": "#/components/schemas/TermDuration"
        segment:
          "$ref": "#/components/schemas/Segment"
        parentSubscriptionId:
          type: string
          description: The parent subscription identifier.
          format: uuid
          nullable: true
        providerSubscriptionId:
          type: string
          description: The provider's subscription identifier.
          nullable: true
        autoRenewal:
          type: boolean
          description: Whether the subscription auto renews.
        autoRenewSettings:
          "$ref": "#/components/schemas/AutoRenewSettings"
        providerData:
          type: string
          description: The subscription provider data.
          nullable: true
        internalId:
          type: string
          description: The internal identifier.
          nullable: true
      additionalProperties: false
    SubscriptionListItemPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/SubscriptionListItem"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
    SubscriptionStatus:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
    SubscriptionTransitionViewModel:
      required:
      - billingFrequency
      - providerOfferId
      - providerOfferIdWithAvailability
      - quantity
      - termDuration
      - transitionType
      type: object
      properties:
        destinationSubscriptionId:
          type: string
          description: The destination subscription identifier.
          format: uuid
          nullable: true
        destinationProviderSubscriptionId:
          type: string
          description: The destination subscription provider identifer.
          nullable: true
        offerName:
          type: string
          description: The name of the offer.
          nullable: true
        offerId:
          type: string
          description: The name of the offer.
          format: uuid
        providerOfferId:
          type: string
          description: The provider offer identifier.
          nullable: true
        providerOfferIdWithAvailability:
          type: string
          description: The provider offer identifier.
          nullable: true
        imageUrl:
          type: string
          description: The offer image URL.
          nullable: true
        quantity:
          type: integer
          description: The quantity.
          format: int32
        termDuration:
          "$ref": "#/components/schemas/TermDuration"
        billingFrequency:
          "$ref": "#/components/schemas/BillingFrequency"
        transitionType:
          type: string
          description: The type of transition ('transition_only','transition_with_license_transfer').
          nullable: true
        transitionEvents:
          type: array
          items:
            "$ref": "#/components/schemas/TransitionEventViewModel"
          description: A list with the events related to a transition.
          nullable: true
      additionalProperties: false
    SubscriptionViewModel:
      type: object
      properties:
        id:
          type: string
          description: The id of the subscription.
          format: uuid
        customerId:
          type: string
          description: The customer id of the subscription.
          format: uuid
          readOnly: true
        providerInstanceId:
          type: string
          description: The provider instance id of the subscription.
          format: uuid
          readOnly: true
        resellerId:
          type: string
          description: The reseller id of the subscription.
          format: uuid
          nullable: true
          readOnly: true
        name:
          type: string
          description: The friendly name of the subscription.
          nullable: true
        providerSubscriptionId:
          type: string
          description: The provider subscription identifier.
          nullable: true
        status:
          "$ref": "#/components/schemas/SubscriptionStatus"
        startDate:
          type: string
          description: The start date of the subscription.
          format: date-time
        endDate:
          type: string
          description: The end date of the subscription.
          format: date-time
        cancellationAllowedUntil:
          type: string
          description: The limit date to cancelled the subscription.
          format: date-time
          nullable: true
        quantity:
          type: integer
          description: The quantity of the subscription.
          format: int32
        termDuration:
          "$ref": "#/components/schemas/TermDuration"
        billingFrequency:
          "$ref": "#/components/schemas/BillingFrequency"
        nextBillingFrequency:
          "$ref": "#/components/schemas/ScheduledBillingFrequency"
        segment:
          "$ref": "#/components/schemas/Segment"
        autoRenewEnabled:
          type: boolean
          description: "`true` if [automatic renew enabled]; otherwise, `false`."
        autoRenewSettings:
          "$ref": "#/components/schemas/AutoRenewSettings"
        margin:
          "$ref": "#/components/schemas/PriceMargin"
        internalId:
          type: string
          description: The internal identifier.
          nullable: true
        poNumber:
          type: string
          description: The po number.
          nullable: true
        offer:
          "$ref": "#/components/schemas/OfferViewModel"
        offerPrice:
          "$ref": "#/components/schemas/OfferPriceViewModel"
        providerData:
          type: string
          description: The subscription provider data.
          nullable: true
      additionalProperties: false
    TermDuration:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: 'The term duration for this entity. Possible values: NoTerm, OneMonth,
        OneYear, ThreeYears or FiveYears'
    TermOfferPriceViewModel:
      type: object
      properties:
        termDuration:
          "$ref": "#/components/schemas/TermDuration"
        billingFrequencies:
          type: array
          items:
            "$ref": "#/components/schemas/BillingFrequency"
          nullable: true
        costPrice:
          "$ref": "#/components/schemas/Price"
        erpPrice:
          "$ref": "#/components/schemas/Price"
      additionalProperties: false
    TransitionEventViewModel:
      type: object
      properties:
        name:
          type: string
          description: The trasition event name.
          nullable: true
        status:
          type: string
          description: The trasition event status.
          nullable: true
      additionalProperties: false
    UnifiedRole:
      type: object
      properties:
        roleDefinitionId:
          type: string
          nullable: true
          readOnly: true
      additionalProperties: false
    UnifiedRoleViewModel:
      type: object
      properties:
        roleDefinitionId:
          type: string
          description: The unified role definition ID of the directory role.
          nullable: true
      additionalProperties: false
      description: The directory roles that can be assigned to a Microsoft partner
        through a delegated admin relationship.
    UpdateCustomerAccountInfoRequest:
      type: object
      properties:
        customer:
          "$ref": "#/components/schemas/CustomerAccountInfoViewModel"
        retryFailedProviderCustomersFromCompanyInfo:
          type: boolean
          description: This flag indicates if we want to retry any provider customer
            that failed from invalid company info.
      additionalProperties: false
    UpdateCustomerInternalIdentifierRequest:
      type: object
      properties:
        internalIdentifier:
          type: string
          description: The new internal identifier to set in the customer relationship.
            This may be up to 255 characters.
          nullable: true
        resellerId:
          type: string
          description: The GUID identifier for the reseller. If value is null it will
            be the relation with the CSP.
          format: uuid
          nullable: true
      additionalProperties: false
    UpdateCustomerMarginsRequest:
      required:
      - margin
      type: object
      properties:
        margin:
          "$ref": "#/components/schemas/PriceMargin"
        offerTypeMargins:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/PriceMargin"
          description: |-
            Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance.
            Price margins applied at the offer type level will override the price margin applied at the provider instance level.
            If no price margin is applied to a specific offer type of this provider instance then it will not be in the dictionary.
            This dictionary is optional.
          nullable: true
          example:
            value:
              license:
                marginRule:
                  name: markup
                value: 10
        resellerId:
          type: string
          description: The GUID identifier for the reseller. If set to null, this
            means direct relationship with CSP.
          format: uuid
          nullable: true
      additionalProperties: false
    UpdateCustomerQualificationRequest:
      required:
      - providerInstanceId
      - qualification
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        qualification:
          "$ref": "#/components/schemas/Qualification"
      additionalProperties: false
    UpdateCustomerRelationshipRequest:
      required:
      - autoExtendEnabled
      - providerInstanceId
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
          example: B8E08E60-19F7-4F95-AE29-A82D3CD53F84
        autoExtendEnabled:
          type: boolean
          description: The flag to indicate whether the relationship is auto extend
            enabled. Must be true or false
          example: true
      additionalProperties: false
    UpdateCustomerUserLicensesRequest:
      required:
      - customerUserLicenses
      - providerInstanceId
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        customerUserLicenses:
          type: array
          items:
            "$ref": "#/components/schemas/CustomerLicenseViewModel"
          description: The list of licenses to update the customer user.
          nullable: true
      additionalProperties: false
    UpdateCustomerUserRolesRequest:
      required:
      - providerInstanceId
      - roleIds
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        roleIds:
          type: array
          items:
            type: string
            format: uuid
          description: The list of role Ids to assign to the customer user.
          nullable: true
      additionalProperties: false
    UpdateMicrosoftCustomerDomainRequest:
      type: object
      properties:
        providerInstanceId:
          type: string
          description: The GUID identifier for the provider instance.
          format: uuid
        domain:
          type: string
          description: The new microsoft domain to update in this customer.
          nullable: true
      additionalProperties: false
    UserRole:
      type: object
      properties:
        name:
          type: string
          description: The name of the enumeration.
          nullable: true
          readOnly: true
      additionalProperties: false
    UserViewModel:
      required:
      - email
      - firstName
      - groups
      - lastName
      type: object
      properties:
        id:
          type: string
          description: The id of the user.
          format: uuid
        firstName:
          type: string
          description: The first name of the user. This may be up to 255 characters.
          nullable: true
        lastName:
          type: string
          description: The last name of the user. This may be up to 255 characters.
          nullable: true
        email:
          type: string
          description: The email. This may be up to 255 characters.
          nullable: true
        role:
          "$ref": "#/components/schemas/UserRole"
        groups:
          type: array
          items:
            "$ref": "#/components/schemas/GroupViewModel"
          description: The user groups.
          nullable: true
      additionalProperties: false
      description: View model that represents a user.
    UserViewModelPagedCollection:
      type: object
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/UserViewModel"
          description: The items for this page.
          nullable: true
          readOnly: true
        paginationParameters:
          "$ref": "#/components/schemas/PaginationParameters"
        totalPages:
          type: integer
          description: The total number of pages available for the specified parameters
            and page size.
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total number of results available for the specified parameters.
            Note this is typically not equal to the Count of items in the Items property,
            will only be equal if all the items fit in the first page.
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a previous page.
          readOnly: true
        hasNextPage:
          type: boolean
          description: Indicates if there is a next page.
          readOnly: true
        continuationToken:
          type: string
          description: The token to continue to retrieve the paginated items.
          nullable: true
          readOnly: true
      additionalProperties: false
      description: Helper class to be used on paged collection entities
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
security:
- bearerAuth: []
x-topics:
- title: Getting Started
  content: |-
    To get started using CloudCockpit API you need a valid API Access. You can create and obtain one very easily if you are a CSP and have the required permission.
    If you are a Reseller or you don't have the required permission, ask for your API Access Credentials from your CSP or Admin.

    1. Go to your CloudCockpit portal
    2. Navigate to the Settings page
    3. Create a new API Access

    ![Api Access Creation](https://stcloudcockpitprod.blob.core.windows.net/shared-static-files/APISettingAccessEnable.png)
- title: Authentication Guide
  content: "# Create or obtain an Api Access on the portal\n\nThe first step to use
    the CloudCockpit API is to create an Api Access on your portal. The creation of
    an Api Access is only enabled for CSPs at the moment, so if you are a Reseller
    or you don't have the specified permission ask a CSP to provide you with the Api
    Access for your user context.\n\n# Obtain an Access token from Microsoft\n\nAfter
    the creation of the API Access you must have the corresponding client ID and client
    Secret, these properties are required to request an Access Token.\nTo request
    access you need to perform a request to the url `https://login.microsoftonline.com/4e806121-ff28-4286-ab4e-3be0a08f9ce0/oauth2/v2.0/token`
    with the client credentials provided by the API Access.\n\n## Examples:\n```shell\ncurl
    -X POST https://login.microsoftonline.com/4e806121-ff28-4286-ab4e-3be0a08f9ce0/oauth2/v2.0/token
    \n-H \"Content-Type: application/x-www-form-urlencoded\" \n-d \"client_id={ApiAccess_ClientId}&client_secret={ApiAccess_ClientSecret}&scope=api://b92a36a4-feb8-4f47-a69c-29a180aa6d0a/.default&grant_type=client_credentials\"\n```\n\n![PostmanExample](https://stcloudcockpitprod.blob.core.windows.net/shared-static-files/PostmanExample.png)\n\n##
    Response and Bearer Token\n\nThe response of this request will include the property
    access_token, and you need to copy its value and use it as the value of the Bearer
    token (`-H \"Authorization: Bearer $ACCESS_TOKEN\"`) for each request to our API.\n\n```json\n{\n
    \   \"token_type\": \"Bearer\",\n    \"expires_in\": 3599,\n    \"ext_expires_in\":
    3599,\n    \"access_token\": \"eyJ0eXAiOi....\"\n}\n```"
