{
  "openapi": "3.0.4",
  "info": {
    "title": "CloudCockpit - Customer 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/Customers/{customerId}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Retrieve a customer",
        "description": "Retrieves a Customer with the specified GUID identifier.",
        "operationId": "GetCustomerById",
        "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/{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.",
        "operationId": "GetCustomerUsers",
        "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.",
        "operationId": "CreateCustomerUser",
        "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.",
        "operationId": "GetAllCustomerUserRoles",
        "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.",
        "operationId": "GetCustomerLicenses",
        "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.",
        "operationId": "GetCustomerDomains",
        "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/{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.",
        "operationId": "UpdateCustomerUserRoles",
        "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.",
        "operationId": "GetCustomerUserRoles",
        "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.",
        "operationId": "UpdateCustomerUserLicenses",
        "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.",
        "operationId": "GetCustomerUserLicenseSkuIds",
        "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.",
        "operationId": "GetCustomerUserById",
        "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.",
        "operationId": "UpdateCustomerUserInfo",
        "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.",
        "operationId": "DeleteCustomerUser",
        "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.",
        "operationId": "ResetCustomerUserPassword",
        "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}/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.",
        "operationId": "GetCustomerDelegatedAdminRelationships",
        "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": [ ]
          }
        ]
      }
    },
    "/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.",
        "operationId": "GetGdapRelationshipAccessAssignment",
        "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": [ ]
          }
        ]
      }
    },
    "/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.",
        "operationId": "GetInvoices",
        "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}/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.",
        "operationId": "GetInvoiceOneTimeLineItemsForCustomer",
        "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.",
        "operationId": "GetInvoiceLicenseLineItemsForCustomer",
        "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.",
        "operationId": "GetOffers",
        "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.",
        "operationId": "GetOfferById",
        "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.",
        "operationId": "CreateOrder",
        "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.",
        "operationId": "GetActiveOrders",
        "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": "createdDateFrom",
            "in": "query",
            "description": "Optional filter to only return orders created on or after this 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",
            "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.",
        "operationId": "GetProvidersInstances",
        "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/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.",
        "operationId": "GetCustomerSubscriptions",
        "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 subscriptions by. Possible values: Offer.Name, RenewalStatus",
            "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/SubscriptionListItemSubscriptionsPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionListItemSubscriptionsPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionListItemSubscriptionsPagedCollection"
                }
              }
            }
          },
          "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.",
        "operationId": "GetSubscriptionById",
        "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.",
        "operationId": "CancelSubscription",
        "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.",
        "operationId": "UpdateSubscription",
        "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.",
        "operationId": "SuspendSubscription",
        "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.",
        "operationId": "ReactivateSubscription",
        "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}/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",
        "operationId": "UpdateSubscriptionPONumber",
        "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.",
        "operationId": "GetAzureEntitlements",
        "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.",
        "operationId": "GetSubscriptionEligibleTransitions",
        "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": "eligibilityType",
            "in": "query",
            "description": "The type of eligible transitions.",
            "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": "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.",
        "operationId": "GetUpgradeEligibleSubscriptions",
        "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-offers/{offerId}": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get the destination offer for a subscription upgrade, with prices already adjusted for the subscription's margin.",
        "operationId": "GetUpgradeOffer",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer. The subscription must belong to this customer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "GUID Unique identifier for the subscription being upgraded.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerId",
            "in": "path",
            "description": "GUID Unique identifier for the destination 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": "resellerId",
            "in": "query",
            "description": "GUID Unique identifier for the reseller. 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/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.",
        "operationId": "UpgradeSubscription",
        "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.",
        "operationId": "RenameEntitlement",
        "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/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.",
        "operationId": "GetSubscriptionsEndDates",
        "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.",
        "operationId": "MigrateSubscription",
        "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.",
        "operationId": "GetSubscriptionMigrationStatus",
        "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/customers/{customerId}/subscriptions/{subscriptionId}/eligible-renewal-offers": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "List Subscription eligible offers for renewal.",
        "description": "Returns a list of eligible offers for renewal for a specified subscription.",
        "operationId": "GetEligibleRenewalOffers",
        "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/OfferViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OfferViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$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/users/groups": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "List all Groups",
        "description": "Returns a list of groups. The groups are returned sorted by Name.",
        "operationId": "GetGroups",
        "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.",
        "operationId": "UpdateUser",
        "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.",
        "operationId": "DeleteUser",
        "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/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.",
        "operationId": "GetCustomerUsersWithAccess",
        "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.",
        "operationId": "GrantAccessToCustomerUser",
        "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": {
      "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
          },
          "providerOfferId": {
            "type": "string",
            "nullable": true,
            "readOnly": 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.\nThe value contains only two letters in uppercase format.\nThis 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
      },
      "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
      },
      "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.\nPossible 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": null,
                  "status": {
                    "name": "required"
                  },
                  "attestationId": null,
                  "lastUpdate": null,
                  "dateAgreed": null
                }
              }
            }
          },
          "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."
      },
      "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
      },
      "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
      },
      "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\nof 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\nof 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."
      },
      "InvoiceLicenseLineItemCustomerViewModel": {
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "description": "The id of the customer associated with the charge.\nCan be null, for example when the CSP removed the relationship with the customer on the provider side\nand 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.\nThis value can change once a subscription renews.\nIf 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.\nIf this line item is associated to a Microsoft invoice then the possible values are:\n**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\non 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\non this charge after taxes.",
            "format": "double",
            "nullable": true,
            "example": 57.31
          },
          "totalOtherDiscountForCustomer": {
            "type": "number",
            "description": "The discount the customer receives for the subscription\non 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.\nIn 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.\nShould 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\nto 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.\nPossible 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\nof 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.\nCan 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.\nCan 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.\nCan also be empty.",
            "nullable": true,
            "example": "Monthly"
          },
          "pricingCurrency": {
            "type": "string",
            "description": "The currency of the UnitPriceForReseller and UnitPriceForCustomer.\nThis 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.\nPossible values:\n- license.\n- softwaresubscription.\n- perpetualsoftware.\n- azureplan.\n- azurereservation.\n- azurelegacy.\n- azuresavingsplan.",
            "nullable": true,
            "example": "license"
          },
          "subscriptionStartDate": {
            "type": "string",
            "description": "The start date of billing for the subscription.\nThis value can change once a subscription renews.\nIf 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.\n\n\nIf this line item is associated to a Microsoft invoice then there are a set of properties that are common to each charge:\n**CustomerDomainName**: The domain of the customer.\n**ProductId**: The id of the product of the line item.\n**SkuId**: The id of the sku of the line item.\n**AvailabilityId**: The id of the availability of the line item.\n**ProductName**: The name of the product.\n**SkuName**: The name of the sku.\n**PublisherName**: The name of the publisher of the sku.\n**PublisherId**: The id of the publisher of the sku.\n**AlternateId**: The alternate id.\n**MeterDescription**: The description of the meter of the line item.\n\n\nThe following properties only appear in some types of charges, see below:\n**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\".\n\n\nFor **Azure savings plan** the properties are: ReservationOrderId.\nFor **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.\nIn the case of the Microsoft provider this charge can be an:\n- Azure Plan,\n- Azure Savings Plan,\n- Azure Reservation,\n- New Commerce License Subscription,\n- Software Subscription,\n- Perpetual Software Subscription,\n- 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.\nShould 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\nto 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."
      },
      "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.\nThis 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."
      },
      "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."
      },
      "OfferCategory": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The offer category. Possible values: ExtendedServiceTerm or EndOfSale."
      },
      "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."
          },
          "offerCategory": {
            "$ref": "#/components/schemas/OfferCategory"
          }
        },
        "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
          },
          "autoRenew": {
            "$ref": "#/components/schemas/SubscriptionRenewalAction"
          },
          "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.\nFor 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
          },
          "providerOfferId": {
            "type": "string",
            "description": "The provider's offer identifier.",
            "nullable": true
          },
          "orderedByEmail": {
            "type": "string",
            "description": "The email of the user who placed the order.",
            "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.\nShould 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'.\nThis 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.\nPrice margins applied at the offer type level will override the price margin applied at the provider instance level.\nIf no price margin is applied to a specific offer type of this provider instance then it will not be in the dictionary.\nThis 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"
      },
      "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."
      },
      "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"
      },
      "SubscriptionBaseInfoViewModel": {
        "required": [
          "autoRenew",
          "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"
          },
          "autoRenew": {
            "$ref": "#/components/schemas/SubscriptionRenewalAction"
          },
          "autoRenewSettings": {
            "$ref": "#/components/schemas/AutoRenewSettings"
          }
        },
        "additionalProperties": false,
        "description": "The viewmodel for the subscription base info."
      },
      "SubscriptionConflictCheckInfoViewModel": {
        "required": [
          "autoRenew",
          "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"
          },
          "autoRenew": {
            "$ref": "#/components/schemas/SubscriptionRenewalAction"
          },
          "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."
      },
      "SubscriptionEligibilityDetailViewModel": {
        "type": "object",
        "properties": {
          "isEligible": {
            "type": "boolean"
          },
          "subscriptionId": {
            "type": "string",
            "nullable": true
          },
          "subscriptionFriendlyName": {
            "type": "string",
            "nullable": true
          },
          "subscriptionTermDuration": {
            "type": "string",
            "nullable": true
          },
          "subscriptionBillingCycle": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "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."
          },
          "offerCategory": {
            "$ref": "#/components/schemas/OfferCategory"
          },
          "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
          },
          "autoRenew": {
            "$ref": "#/components/schemas/SubscriptionRenewalAction"
          },
          "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
      },
      "SubscriptionListItemSubscriptionsPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionListItem"
            },
            "nullable": true,
            "readOnly": true
          },
          "paginationParameters": {
            "$ref": "#/components/schemas/PaginationParameters"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "readOnly": true
          },
          "continuationToken": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "totalUnfilteredCount": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionRenewalAction": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the action to take when a subscription reaches its end of term."
      },
      "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
          },
          "offerDescription": {
            "type": "string",
            "description": "The offer description.",
            "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
          },
          "cheapestPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "subscriptionEligibilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionEligibilityDetailViewModel"
            },
            "description": "Subscription eligibilities for this 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"
          },
          "termStartDate": {
            "type": "string",
            "description": "The start date of the current term. This will change when the subscription is renewed.",
            "format": "date-time",
            "nullable": true
          },
          "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"
          },
          "autoRenew": {
            "$ref": "#/components/schemas/SubscriptionRenewalAction"
          },
          "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"
          },
          "renewOffer": {
            "$ref": "#/components/schemas/OfferViewModel"
          },
          "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
      },
      "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
      },
      "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."
      }
    },
    "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.\nIf you are a Reseller or you don't have the required permission, ask for your API Access Credentials from your CSP or Admin.\n\n1. Go to your CloudCockpit portal\n2. Navigate to the Settings page\n3. Create a new API Access\n\n![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```"
    }
  ]
}
