{
  "openapi": "3.0.4",
  "info": {
    "title": "CC",
    "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/Alerts/alert-policies": {
      "get": {
        "tags": [
          "Alerts"
        ],
        "summary": "Get alert policies",
        "description": "Gets the existent alert policies.",
        "operationId": "GetAlertPolicies",
        "parameters": [
          {
            "name": "alertTypes",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortPropertyName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ascendingOrder",
            "in": "query",
            "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/AlertPolicyViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertPolicyViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertPolicyViewModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Alerts"
        ],
        "summary": "Creates a new alert policy.",
        "operationId": "CreateAlertPolicy",
        "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 alert policy to be created.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AlertPolicyViewModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertPolicyViewModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertPolicyViewModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AlertPolicyViewModel"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Alerts/alert-policies/{id}": {
      "delete": {
        "tags": [
          "Alerts"
        ],
        "summary": "Changes the State of IsDeleted to True for the alert policy with the given id.",
        "operationId": "DeleteAlertPolicy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the alert policy to be deleted.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Alerts"
        ],
        "operationId": "UpdateAlertPolicy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "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": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AlertPolicyViewModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertPolicyViewModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertPolicyViewModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AlertPolicyViewModel"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Alerts"
        ],
        "summary": "Update alert status.",
        "operationId": "UpdateAlertPolicyStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "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": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAlertPolicyStatusRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Alerts": {
      "get": {
        "tags": [
          "Alerts"
        ],
        "summary": "List all alerts",
        "operationId": "GetAlerts",
        "parameters": [
          {
            "name": "entityName",
            "in": "query",
            "description": "The entity name of the alerts.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "severities",
            "in": "query",
            "description": "The severities of the alerts.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "The statuses of the alerts.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "types",
            "in": "query",
            "description": "The types of the alerts.",
            "schema": {
              "type": "string"
            }
          },
          {
            "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.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortPropertyName",
            "in": "query",
            "description": "The name of the property to sort by.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ascendingOrder",
            "in": "query",
            "description": "The value indicating whether to sort in ascending order.",
            "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/AlertPolicyViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertPolicyViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertPolicyViewModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Alerts/{alertId}": {
      "patch": {
        "tags": [
          "Alerts"
        ],
        "summary": "Updates the alert resolution.",
        "operationId": "UpdateAlertResolution",
        "parameters": [
          {
            "name": "alertId",
            "in": "path",
            "description": "The alert identifier.",
            "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 resolution name.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "string"
              }
            },
            "application/json": {
              "schema": {
                "type": "string"
              }
            },
            "text/json": {
              "schema": {
                "type": "string"
              }
            },
            "application/*+json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Alerts/export": {
      "post": {
        "tags": [
          "Alerts"
        ],
        "summary": "Request the export of the alerts for the given filters.",
        "operationId": "RequestAlertsExport",
        "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 report parameters for the export.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AlertsReportParameters"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertsReportParameters"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertsReportParameters"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AlertsReportParameters"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Alerts/unresolved-alert-count": {
      "get": {
        "tags": [
          "Alerts"
        ],
        "summary": "Get a count of unresolved alerts.",
        "operationId": "GetUnresolvedAlertCount",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Alerts/last-seven-days-alert-count": {
      "get": {
        "tags": [
          "Alerts"
        ],
        "summary": "Get a count of last seven days alerts.\nRequest has cache for 5 minutes. We assumed that the alerts in future can be changed more often because of Subscriptions Alerts.",
        "operationId": "GetLastSevenDaysAlertCount",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Alerts/count-by-severity": {
      "get": {
        "tags": [
          "Alerts"
        ],
        "summary": "Gets the count of alerts by severity.",
        "operationId": "GetAlertsBySeverityCount",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlertsBySeverityCountViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlertsBySeverityCountViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlertsBySeverityCountViewModel"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/ApiAccesses": {
      "get": {
        "tags": [
          "ApiAccesses"
        ],
        "description": "**Available to the roles:** csp",
        "operationId": "GetCspApiAccess",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Enables the Api Access for CSP users.",
        "description": "**Available to the roles:** csp",
        "operationId": "EnableCspApiAccess",
        "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 groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupViewModel"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Disables the Api Access for CSP users.",
        "description": "**Available to the roles:** csp",
        "operationId": "DisableCspApiAccess",
        "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"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Updates the API access for CSP users.",
        "description": "**Available to the roles:** csp",
        "operationId": "UpdateCspApiAccess",
        "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 groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupViewModel"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/ApiAccesses/resellers/{resellerId}": {
      "get": {
        "tags": [
          "ApiAccesses"
        ],
        "description": "**Available to the roles:** csp",
        "operationId": "GetResellerApiAccess",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Enables the Api Access for a reseller users.",
        "description": "**Available to the roles:** csp",
        "operationId": "EnableResellerApiAccess",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "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 groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupViewModel"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Disables the Api Access for a reseller users.",
        "description": "**Available to the roles:** csp",
        "operationId": "DisableResellerApiAccess",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "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": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Updates the API access for a reseller users.",
        "description": "**Available to the roles:** csp",
        "operationId": "UpdateResellerApiAccess",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "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 groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupViewModel"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/ApiAccesses/resellers/{resellerId}/customers/{customerId}": {
      "get": {
        "tags": [
          "ApiAccesses"
        ],
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetResellerCustomerApiAccess",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Enables the Api Access for a reseller's customer users.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "EnableResellerCustomerApiAccess",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "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 groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupViewModel"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Disables the Api Access for a reseller's customer users.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "DisableResellerCustomerApiAccess",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "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": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Updates the API access for a reseller's customer users.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "UpdateResellerCustomerApiAccess",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "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 groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupViewModel"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/ApiAccesses/customers/{customerId}": {
      "get": {
        "tags": [
          "ApiAccesses"
        ],
        "description": "**Available to the roles:** csp",
        "operationId": "GetDirectCustomerApiAccess",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Enables the Api Access for a direct customer users.",
        "description": "**Available to the roles:** csp",
        "operationId": "EnableDirectCustomerApiAccess",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "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 groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupViewModel"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Disables the Api Access for a direct customer users.",
        "description": "**Available to the roles:** csp",
        "operationId": "DisableDirectCustomerApiAccess",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "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": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Updates the API access for a direct customer users.",
        "description": "**Available to the roles:** csp",
        "operationId": "UpdateDirectCustomerApiAccess",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "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 groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GroupViewModel"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/ApiAccesses/generate-new-secret": {
      "post": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Generate new client secret for CSP users.",
        "description": "**Available to the roles:** csp",
        "operationId": "GenerateNewClientSecretForCsp",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/ApiAccesses/resellers/{resellerId}/generate-new-secret": {
      "post": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Generate new client secret for a reseller users.",
        "description": "**Available to the roles:** csp",
        "operationId": "GenerateNewClientSecretForReseller",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/ApiAccesses/resellers/{resellerId}/customers/{customerId}/generate-new-secret": {
      "post": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Generate new client secret reseller's customer users.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GenerateNewClientSecretForResellerCustomer",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/ApiAccesses/customers/{customerId}/generate-new-secret": {
      "post": {
        "tags": [
          "ApiAccesses"
        ],
        "summary": "Generate new client secret for a direct customer users.",
        "description": "**Available to the roles:** csp",
        "operationId": "GenerateNewClientSecretForDirectCustomer",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/AuditLogs": {
      "get": {
        "tags": [
          "AuditLogs"
        ],
        "summary": "List all audit logs",
        "description": "Returns a list of your audit logs. The audit logs are returned sorted by Timestamp, with the most recent audit logs appearing first.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetAuditLogs",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "A cursor for pagination across multiple pages of results. The default value is 1.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The number of objects to be returned at each page. The size can range between 1 and 2000, and the default is 25.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "The start date for the interval to filter the audit logs. The default value is 1 month ago.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "The end date for the interval to filter the audit logs. The default value is current date time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Operations",
            "in": "query",
            "description": "A string containing the operations to filter by. This string is a list separated by |. ex: CreateOrder|CreateCustomer",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "The audit log status to filter by. Possible values: Processing, Succeded, Failed",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Reseller",
            "in": "query",
            "description": "The reseller name to search by. This field searches for a substring so the provided string as a whole must be a present in the desired reseller name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer",
            "in": "query",
            "description": "The customer name to search by. This field searches for a substring so the provided string as a whole must be a present in the desired customer name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier. View the audit logs as the specified resellerId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogViewModelPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/AuditLogs/operations": {
      "get": {
        "tags": [
          "AuditLogs"
        ],
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetAuditLogsOperations",
        "parameters": [
          {
            "name": "resellerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/connectors/connections/{connectionId}/customers": {
      "get": {
        "tags": [
          "ConnectionsCustomers"
        ],
        "summary": "Gets the customers that are mapped or unmaped for a given connector's connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetCustomersForConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "companyName",
            "in": "query",
            "description": "A search value for a customer's name. Including the value will return all entries whose customer name contains the search value.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The number of pages.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "returnUnmappedCustomers",
            "in": "query",
            "description": "Whether or not to return only the transacting customers that aren't mapped in the connection.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The max number of items to retrieve per page. Allowed values are: 10, 25 or 50.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "The name of a customer, to serve as a cursor to get the next page of results.",
            "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/ConnectionCustomerViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModelPagedCollection"
                }
              }
            }
          },
          "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": [
          "ConnectionsCustomers"
        ],
        "summary": "Creates a mapping between a CloudCockpit customer and a Connector's connection instance.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "CreateCustomerConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "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": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionCustomerCreationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/connectors/connections/{connectionId}/possible-customers": {
      "get": {
        "tags": [
          "ConnectionsCustomers"
        ],
        "summary": "Gets the customers from a connector's connection which can potentially be added to the connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetPossibleCustomersForConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "companyName",
            "in": "query",
            "description": "A search value for a customer's name. Has at max 255 characters.",
            "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/ConnectionCustomerViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                  }
                }
              }
            }
          },
          "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/connectors/connections/{connectionId}/mapped-customers": {
      "get": {
        "tags": [
          "ConnectionsCustomers"
        ],
        "summary": "Gets the customers from a connector's connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetMappedCustomersForConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "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/ConnectionCustomerViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                }
              }
            }
          },
          "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}/connectors/connections/{connectionId}/mapping": {
      "get": {
        "tags": [
          "ConnectionsCustomers"
        ],
        "summary": "Gets the mapping between a customer and a specific connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetCustomerConnectionMapping",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The id of the customer in CloudCockpit.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "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/ConnectionCustomerViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionCustomerViewModel"
                }
              }
            }
          },
          "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/connectors/connections/{connectionId}/offers": {
      "get": {
        "tags": [
          "ConnectionsOffers"
        ],
        "summary": "Gets the offers that are mapped or unmaped for a given connector's connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetOffersForConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerName",
            "in": "query",
            "description": "A search value for an offer's name. Including value will return all entries whose offer name starts with the search value.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The current page number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "returnUnmappedOffers",
            "in": "query",
            "description": "Whether or not to return only the transacting offers that aren't mapped in the connection.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The max number of items to retrieve per page. Allowed values are: 10, 25 or 50.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "If null, we are getting the first page of items.\nOtherwise, it will be the last offer id of a connection offer, of the last page,\nto allow getting the next set of records.",
            "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/ConnectionOfferViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferViewModelPagedCollection"
                }
              }
            }
          },
          "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": [
          "ConnectionsOffers"
        ],
        "summary": "Creates a mapping between a CloudCockpit offer and a Connector's connection instance.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "CreateOfferConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "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": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionOfferCreationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferViewModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/connectors/connections/{connectionId}/possible-offers": {
      "get": {
        "tags": [
          "ConnectionsOffers"
        ],
        "summary": "Gets the offers from a connector's connection which can potentially be added to the connection.\nNote that no validation is done here. It can happen that an offer was already added.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetPossibleOffersForConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerName",
            "in": "query",
            "description": "A search value for an offer's name. Has at max 255 characters.",
            "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/ConnectionOfferViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionOfferViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionOfferViewModel"
                  }
                }
              }
            }
          },
          "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/offers/{offerId}/connectors/connections/{connectionId}/mapping": {
      "get": {
        "tags": [
          "ConnectionsOffers"
        ],
        "summary": "Gets the mapping between an offer and a specific connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetOfferConnectionMapping",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "The id of the offer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerSegment",
            "in": "query",
            "description": "The segment of the offer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offerTerm",
            "in": "query",
            "description": "The term of the offer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offerBillingFrequency",
            "in": "query",
            "description": "The billing frequency of the offer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "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/ConnectionOfferViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferViewModel"
                }
              }
            }
          },
          "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/offers/{offerId}/connectors/connections/{connectionId}/mapping-eligibility": {
      "get": {
        "tags": [
          "ConnectionsOffers"
        ],
        "summary": "Gets a model that indicates if the offer with the given Segment, Term and Billing Frequency is supported to be mapped on a specific connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetOfferConnectionMappingEligibility",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "The id of the offer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerSegment",
            "in": "query",
            "description": "The segment of the offer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offerTerm",
            "in": "query",
            "description": "The term of the offer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offerBillingFrequency",
            "in": "query",
            "description": "The billing frequency of the offer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "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/ConnectionOfferMappingEligibility"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferMappingEligibility"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOfferMappingEligibility"
                }
              }
            }
          },
          "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/connectors/connections/{connectionId}/subscriptions": {
      "get": {
        "tags": [
          "ConnectionsSubscriptions"
        ],
        "summary": "Gets the subscriptions that are mapped or unmaped for a given connector's connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetSubscriptionsForConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerName",
            "in": "query",
            "description": "A search value for an offer's name. Including the value will return all entries whose offer name starts contains prefixes that start with the words in the search value or is equal to the search value.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The current page number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The max number of items to retrieve per page. Allowed values are: 10, 25 or 50.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "The id of the customer to filter results for.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "If null, we are getting the first page of items.\nOtherwise, it is a string that contains the OfferName, OfferId, Segment, Term, BillingFrequency, and SubscriptionId all concatenated by '|', of the last record in the previous page.",
            "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/ConnectionSubscriptionViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSubscriptionViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSubscriptionViewModelPagedCollection"
                }
              }
            }
          },
          "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": [
          "ConnectionsSubscriptions"
        ],
        "summary": "Creates a mapping between a CloudCockpit subscription and a connector's connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "CreateSubscriptionConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "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": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionSubscriptionCreationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSubscriptionViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSubscriptionViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSubscriptionViewModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/connectors/connections/{connectionId}/subscriptions/possible-contracts": {
      "get": {
        "tags": [
          "ConnectionsSubscriptions"
        ],
        "summary": "Gets the contracts from a connector's connection which can potentially be associated to a connection subscription.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetPossibleContractsForSubscriptionConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "contractNameSearchValue",
            "in": "query",
            "description": "A search value that is used by the connection to get the possible connector connections. Has at max 128 characters.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriptionId",
            "in": "query",
            "description": "The id of the subscription for which we want to get the possible contracts.",
            "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/ConnectionContractViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionContractViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionContractViewModel"
                  }
                }
              }
            }
          },
          "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/connectors/connections/{connectionId}/orders/possible-contracts": {
      "get": {
        "tags": [
          "ConnectionsSubscriptions"
        ],
        "summary": "Gets the contracts from a connector's connection which can potentially be associated to an order.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetPossibleContractsForOrder",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connector's connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "contractNameSearchValue",
            "in": "query",
            "description": "A search value that is used by the connection to get the possible connector connections. Has at max 128 characters.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderId",
            "in": "query",
            "description": "The id of the order for which we want to get the possible contracts.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connectionCustomerCompanyId",
            "in": "query",
            "description": "A required query string parameter that indicates the company id of the customer which is mapped to the same connection as the connection we want to associate to the order. Has max 255 characters and is not empty.",
            "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/ConnectionContractViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionContractViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionContractViewModel"
                  }
                }
              }
            }
          },
          "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/connectors/connections/{connectionId}/subscriptions/{connectionSubscriptionId}/synchronizations": {
      "post": {
        "tags": [
          "ConnectionsSubscriptions"
        ],
        "summary": "Creates a synchronization request for a connection subscription,\nso that all unsynced operations that were done directly via CloudCockpit can be synced\nto the Connection of the subscription.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "CreateSynchronizationRequest",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "connectionSubscriptionId",
            "in": "path",
            "description": "The id of the connection 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"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/connectors/connections/{connectionId}/orders/{orderId}": {
      "post": {
        "tags": [
          "ConnectionsSubscriptions"
        ],
        "summary": "Sends a request to trigger a process that will map a subscription to a connection.\nSince a subscription may not created at the time the request is sent, we require the orderId instead of the subscriptionId.\nRequires the customer and offer associated to the order already being mapped to the connection.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "TriggerSubscriptionMappingToConnection",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "The id of the connection.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "orderId",
            "in": "path",
            "description": "The id of the order associated to 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 model with the properties that should be sent when triggering a mapping between a subscription and a connection.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriggerSubscriptionMappingRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/connection": {
      "get": {
        "tags": [
          "ConnectionsSubscriptions"
        ],
        "summary": "Retrieve a Subscription's connection",
        "operationId": "GetSubscriptionConnection",
        "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/ConnectionSubscriptionViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSubscriptionViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionSubscriptionViewModel"
                }
              }
            }
          },
          "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/connectors/connections/{connectionId}/customers/{customerId}/subscriptions/{subscriptionId}/quantity": {
      "get": {
        "tags": [
          "ConnectionsSubscriptions"
        ],
        "summary": "Retrieve a Subscription's quantity",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetConnectionSubscriptionQuantity",
        "parameters": [
          {
            "name": "connectionId",
            "in": "path",
            "description": "GUID Unique identifier for the connection",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer.",
            "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": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/connectors": {
      "get": {
        "tags": [
          "Connectors"
        ],
        "summary": "Gets all the connectors.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetConnectors",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorViewModel"
                }
              }
            }
          },
          "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/connectors/{connectorId}": {
      "get": {
        "tags": [
          "Connectors"
        ],
        "summary": "Gets a connector by its id.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetConnectorById",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "The id of the connector.",
            "required": true,
            "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/ConnectorViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorViewModel"
                }
              }
            }
          },
          "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/connectors/connections": {
      "get": {
        "tags": [
          "ConnectorsConnections"
        ],
        "summary": "Gets all the connections of all connectors.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetConnectorsConnections",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectorConnectionViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectorConnectionViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectorConnectionViewModel"
                  }
                }
              }
            }
          },
          "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": [ ]
          }
        ]
      },
      "head": {
        "tags": [
          "ConnectorsConnections"
        ],
        "summary": "Returns 200 if there is at least one connection created on the user context.\nOtherwise should return 404 unless there were some abnormal error.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "HasConnectorsConnections",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "ConnectorsConnections"
        ],
        "summary": "Creates a new instance of a connector.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "CreateConnectorConnection",
        "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": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectorConnectionCreationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "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/connectors/connections/{id}": {
      "get": {
        "tags": [
          "ConnectorsConnections"
        ],
        "summary": "Gets a connector's connection by the connection's id.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetConnectorsConnectionById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "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/ConnectorConnectionViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorConnectionViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorConnectionViewModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "List all customers",
        "description": "Returns a list of your customers. The customers are returned sorted by the specified sortPropertyName.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetCustomers",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "A cursor for pagination across multiple pages of results. The default value is 1.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of objects to be returned at each page. The size can range between 1 and 2000, and the default is 25.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "searchValue",
            "in": "query",
            "description": "The search query string. Required if searchField is provided. The search value has a maximum of 255 characters.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchField",
            "in": "query",
            "description": "The field in which the search is performed. Possible values: Company.Name; Domain; InternalIdentifier and ProviderCustomerId. If searchValue was set but searchField wasn't then by default the search will be done by Company.Name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortPropertyName",
            "in": "query",
            "description": "The name of the property to sort the customers by. Possible values: Company.Name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ascendingOrder",
            "in": "query",
            "description": "if set to `true` [ascending order].",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier. View only the customers that have relation with the specified resellerId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "showDeleted",
            "in": "query",
            "description": "If true the deleted customers will be included.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Create a customer",
        "description": "Creates a new Customer with the provided CustomerViewModel.\r\n**Available to the roles:** csp, reseller",
        "operationId": "CreateCustomer",
        "parameters": [
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The customer info to create the customer.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerViewModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Retrieve a customer",
        "description": "Retrieves a Customer with the specified GUID identifier.",
        "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": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Customers"
        ],
        "summary": "Deletes a customer from the portal.",
        "description": "**Available to the roles:** csp",
        "operationId": "DeleteCustomer",
        "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"
            }
          }
        ],
        "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/validations/domain": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Validate a customer Microsoft domain",
        "description": "Checks if the provided Microsoft domain is valid (does not exist already in Microsoft) to create a new Microsoft customer. This request is only valid when using a Microsoft tenant/provider.\r\n**Available to the roles:** csp, reseller",
        "operationId": "ValidateDomain",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "The Microsoft tenant identifier to use in validation request to Microsoft.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "The Microsoft domain to validate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/validations/address": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Validate a customer address",
        "description": "Checks if the provided address is valid to create a new customer. This request is only valid when using a Microsoft tenant/provider.\r\n**Available to the roles:** csp, reseller",
        "operationId": "ValidateAddress",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "The Microsoft tenant identifier to use in validation request to Microsoft.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "addressLine1",
            "in": "query",
            "description": "The address first line.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "addressLine2",
            "in": "query",
            "description": "The address second line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "description": "The address city.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "The address state.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zipCode",
            "in": "query",
            "description": "The address zip code.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "The address country.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/internal-identifier": {
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Update a customer internal identifier",
        "description": "Updates the specified customer internal identifier. Since the internal identifier is specific by relationship the resellerId provided in the body will set the internal identifier for that relationship. If the ResellerId is not sent or is null, the relationship modified will be your relationship with the customer.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateCustomerInternalIdentifier",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update. This body contains an JSON Object with two properties (InternalIdentifier, ResellerId).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerInternalIdentifierRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/account-info": {
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Update a customer account info",
        "description": "Updates the specified customer account info. Additionally this request contains the flag RetryFailedProviderCustomersFromCompanyInfo that if set to true will retry any provider customer that failed due to invalid company info.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateCustomerAccountInfo",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update. This body contains an JSON Object with two properties (customer, retryFailedProviderCustomersFromCompanyInfo).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerAccountInfoRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/margins/{providerInstanceId}": {
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Updates a customer margins",
        "description": "Updates the specified customer margins. Since the margins are specific by relationship the resellerId provided in the body will set the margins for that relationship. If the ResellerId is not sent or is null, the relationship modified will be your relationship with the customer.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateCustomerMargins",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerMarginsRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/microsoft-customer-domain": {
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Updates a Customer Microsoft domain",
        "description": "Updates the specified customer Microsoft domain. Since this resource is specific to the Microsoft provider, this request is only valid for provider customers that belong to a Microsoft tenant/provider.\nThis request can only be used in a provider customer that is failed with the customer creation error DomainExists. After updating the customer domain it's necessary to call the Retry Creation of a Provider Customer to attempt to create this provider customer again.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateMicrosoftCustomerDomain",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMicrosoftCustomerDomainRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/provider-customers/{providerInstanceId}": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Retry Creation of a Provider Customer",
        "description": "Retries the creation of a failed provider. The provided provider customer should be in the failed status, this request will fail otherwise.\r\n**Available to the roles:** csp, reseller",
        "operationId": "RetryProviderCustomerCreation",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/provider-customers/{providerInstanceId}/sync": {
      "put": {
        "tags": [
          "Customers"
        ],
        "summary": "Synchronize customer account info based on the provider instance",
        "description": "Synchronizes customer account info based on the selected provider instance.\nThis will update the account info for the customer in the portal, and the customer info on other providers.\r\n**Available to the roles:** csp, reseller",
        "operationId": "SyncCustomer",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/microsoft-qualification": {
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Updates a Customer Microsoft Qualification",
        "description": "Updates the specified customer Microsoft qualification. Since this resource is specific to the Microsoft provider, this request is only valid for provider customers that belong to a Microsoft tenant/provider.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateCustomerQualification",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerQualificationRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/users": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "List all Customer users",
        "description": "Returns a list of your customer users for a specified customer. The customer users are returned sorted by the specified sortPropertyName. Since this resource is specific to the Microsoft provider, this request is only valid for provider customers that belong to a Microsoft tenant/provider.",
        "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/mca": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Retrieve Microsoft Customer Agreements",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetMicrosoftCustomerAgreements",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "Optional GUID to filter by customer.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "Optional GUID to filter by provider instance.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Optional status to filter agreements. Valid values: required, linkgenerated, customeraccepted, linkexpired, agreementcreated (case insensitive).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchValue",
            "in": "query",
            "description": "Optional search value to filter by company name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The page number for pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The page size for pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortPropertyName",
            "in": "query",
            "description": "The property name to sort by. Valid values: CompanyName, Status. Default is Status.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "excludeCompliant",
            "in": "query",
            "description": "Whether we should retrieve agreements with agreementcreated status or not",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "ascendingOrder",
            "in": "query",
            "description": "Whether to sort in ascending order. Default is false (descending).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModelPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/mca/status-counts": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets the count of Microsoft Customer Agreements grouped by status",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetMCAStatusCounts",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "Optional customer identifier to filter by",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "Optional provider instance identifier to filter by",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "integer",
                    "format": "int32"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "integer",
                    "format": "int32"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "integer",
                    "format": "int32"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/users/{customerUserId}/user-roles": {
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Updates the roles of a customer user",
        "description": "Updates the roles of a customer user. Since this resource is specific to the Microsoft provider, this request is only valid for provider customers that belong to a Microsoft tenant/provider.",
        "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}/service-management-links": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "List the customer service management links.",
        "description": "Returns the list of customer service management links. Since this resource is specific to the Microsoft provider, this request is only valid for provider instances that belong to a Microsoft tenant/provider.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetCustomerServiceManagementLinks",
        "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.",
            "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/ServiceManagementLink"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ServiceManagementLink"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ServiceManagementLink"
                  }
                }
              }
            }
          },
          "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}/creatable-provider-instances": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Gets the provider instances that can be added to a customer\non a given CSP or reseller context. If the provider instances\nwere already added and no margins have been defined between\nthe given the context and the provider instance, than these\nprovider instances will still be returned as it is possible\nto simply set the margins for a given customer and provider instance\neven if the customer was already created on the provided.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetCustomerCreatableProviderInstances",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The id of the reseller. Should not be passed if a reseller performs the request.\nA CSP can set the id of a reseller to add a provider instance between that reseller and a customer.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProviderInstanceViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProviderInstanceViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProviderInstanceViewModel"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/provider-instances": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Add provider instance to customer.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "AddProviderInstanceToCustomer",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The id of the reseller. Should not be passed if a reseller performs the request.\nA CSP can set the id of a reseller to add a provider instance between that reseller and a customer.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request with the information of the provider instance to add to the customer.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddProviderInstanceToCustomerRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/direct-relationship": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Add direct relationship to customer.",
        "description": "**Available to the roles:** csp",
        "operationId": "AddDirectRelationshipToCustomer",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "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 provider customer.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ProviderCustomerViewModel"
                  },
                  {
                    "$ref": "#/components/schemas/MicrosoftProviderCustomerViewModel"
                  },
                  {
                    "$ref": "#/components/schemas/GenericProviderCustomerViewModel"
                  }
                ],
                "description": "Represents a customer associated with a specific provider."
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/has-direct-relationship": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Checks if a customer has a direct relationship with the csp.",
        "description": "**Available to the roles:** csp",
        "operationId": "HasDirectRelationship",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "The provider instance 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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/user-licenses-files": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Creates the licenses report file for a specified customer.",
        "operationId": "CreateUserLicensesReportFile",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "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 licenses report information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserLicensesReportFileViewModel"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad 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": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "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/Customers/{customerId}/remove-reseller-relationship/{providerInstanceId}": {
      "delete": {
        "tags": [
          "Customers"
        ],
        "summary": "Removes Reseller Relationship with a customer on a specific provider instance.",
        "description": "**Available to the roles:** csp",
        "operationId": "RemoveCustomerResellerRelationshipRequest",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The provider instance id.",
            "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}/provider-instances/{providerInstanceId}/mca": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get customer MCA",
        "description": "Gets the Microsoft Customer Agreement (MCA) information for the customer in the given provider instance. This request only applies to Microsoft provider instances.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetMca",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The id of the provider instance where the MCA is being requested. Should be a Microsoft provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/provider-instances/{providerInstanceId}/mca/status": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Manually refresh customer MCA status",
        "description": "Manually updates the Microsoft Customer Agreement (MCA) status for the customer in the given provider instance. This will get the latest MCA status from Microsoft and update it in the portal. This action is logged in the audit log.\r\n**Available to the roles:** csp, reseller",
        "operationId": "ManualCheckUpdateMcaStatus",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The id of the provider instance where the MCA is being requested. Should be a Microsoft provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/StartMcaAttestationViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartMcaAttestationViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartMcaAttestationViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/provider-instances/{providerInstanceId}/mca/status/auto": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Automatically refresh customer MCA status",
        "description": "Automatically updates the Microsoft Customer Agreement (MCA) status for the customer in the given provider instance. This will get the latest MCA status from Microsoft and update it in the portal. This action is NOT logged in the audit log as it's triggered automatically by the system.\r\n**Available to the roles:** csp, reseller",
        "operationId": "AutoCheckUpdateMcaStatus",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The id of the provider instance where the MCA is being requested. Should be a Microsoft provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/StartMcaAttestationViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartMcaAttestationViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartMcaAttestationViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/provider-instances/{providerInstanceId}/mca/attestation": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Start customer MCA attestation",
        "description": "Starts the MCA attestation process for the customer in the given provider instance. Only applies to MCAs where the status is either not started or expired.\r\n**Available to the roles:** csp, reseller",
        "operationId": "StartMcaAttestation",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The id of the provider instance where the MCA is being requested. Should be a Microsoft provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The attestation data.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartMcaAttestationViewModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/provider-instances/{providerInstanceId}/mca/agreement": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Create customer MCA agreement",
        "description": "Creates a new MCA agreement for the customer in the given provider instance. Customer must have accepted the existing attestation in the portal.\r\n**Available to the roles:** csp, reseller",
        "operationId": "CreateMcaAgreement",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The id of the provider instance where the MCA agreement is being created. Should be a Microsoft provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/dashboard/summary": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Gets the data for the dashboard summary tiles",
        "description": "**Available to the roles:** csp, reseller, customer",
        "operationId": "GetDashboardSummary",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardSummaryViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardSummaryViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardSummaryViewModel"
                }
              }
            }
          },
          "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/dashboard/carousel": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Get dashboard carousel",
        "description": "**Available to the roles:** csp, reseller, customer",
        "operationId": "GetCarousel",
        "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"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Update dashboard carousel",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "UpdateCarousel",
        "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": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "carouselContent": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/CarouselPanelUpdateViewModel"
                    },
                    "description": "The content to display in the carousel"
                  }
                }
              },
              "encoding": {
                "carouselContent": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "head": {
        "tags": [
          "Dashboard"
        ],
        "operationId": "HasCarousel",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/dashboard/editable-carousel": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Get the editable dashboard carousel panels based on the role.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetEditableCarousels",
        "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"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/email-digests": {
      "post": {
        "tags": [
          "EmailDigest"
        ],
        "summary": "Configure the email digest.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "ConfigureEmailDigest",
        "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 configured email digest.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailDigestViewModel"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "EmailDigest"
        ],
        "summary": "Get the email digest for the given type and user.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetEmailDigest",
        "parameters": [
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "digestType",
            "in": "query",
            "description": "The email digest type.",
            "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/EmailDigestViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailDigestViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailDigestViewModel"
                }
              }
            }
          },
          "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}/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": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Gdap"
        ],
        "summary": "Create a delegated admin relationship for a given customer",
        "description": "Create a delegated admin relationship for the 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.\r\n**Available to the roles:** csp, reseller",
        "operationId": "CreateCustomerDelegatedAdminRelationship",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer. Optional only needed if you want to associate with a customer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update. This body contains an JSON Object with four properties (providerInstanceId, displayName, AutoExtendEnabled and CustomSelectedGdapRolesIds).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDelegatedAdminRelationshipRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/delegated-admin-relationships": {
      "post": {
        "tags": [
          "Gdap"
        ],
        "summary": "Create a delegated admin relationship",
        "description": "Create a delegated admin relationship. Since this resource is specific to the Microsoft provider, this request is only valid for provider customers that belong to a Microsoft tenant/provider.\r\n**Available to the roles:** csp, reseller",
        "operationId": "CreateDelegatedAdminRelationship",
        "parameters": [
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update. This body contains an JSON Object with four properties (providerInstanceId, displayName, AutoExtendEnabled and CustomSelectedGdapRolesIds).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDelegatedAdminRelationshipRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedAdminRelationshipViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/delegated-admin-relationships/{relationshipId}/access-assignments": {
      "get": {
        "tags": [
          "Gdap"
        ],
        "summary": "Get access assignments of a delegated admin relationship",
        "description": "Gets the list of access assignments on the given relationship. Only the access assignments associated with the configured security group are returned.",
        "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": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Gdap"
        ],
        "summary": "Create access assignment",
        "description": "Links the given relationship with the security group configured in the portal. Relationship must be in active state and must not have an access assignment with the security group.\r\n**Available to the roles:** csp, reseller",
        "operationId": "CreateGdapRelationshipAccessAssignment",
        "parameters": [
          {
            "name": "relationshipId",
            "in": "path",
            "description": "Id of the relationship",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "Id of the provider instance where relationship is created",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/relationship-acceptance": {
      "get": {
        "tags": [
          "Gdap"
        ],
        "summary": "Retrieve relationship acceptance link for a Customer",
        "description": "Gets a link to establish a relationship with a customer.\nIf a resellerId is provided, the relationship is established between the customer and that reseller. Otherwise, the relationship is between the customer and CSP.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetRelationshipAcceptanceLink",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "GUID Unique identifier for the customer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "GUID Unique identifier for the reseller. If user is a reseller this property will be auto-populated.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/relationships": {
      "post": {
        "tags": [
          "Gdap"
        ],
        "summary": "Create a relationship for a customer",
        "description": "This operation has two steps.\nFirst, it gets a link to establish a relationship with a customer. This relationship is established with the CSP unless a reseller ID is provided.\nSecond, it creates and locks a GDAP relationship between the CSP and the customer\r\n**Available to the roles:** csp, reseller",
        "operationId": "CreateCustomerRelationship",
        "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": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/JToken"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/gdap-roles": {
      "get": {
        "tags": [
          "Gdap"
        ],
        "summary": "Get GDAP roles",
        "description": "Gets the list of GDAP roles available in the platform. Lists both the default roles, as well as all roles available.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetGdapRoles",
        "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"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableGdapRolesViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableGdapRolesViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableGdapRolesViewModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Customers/{customerId}/delegated-admin-relationships/{relationshipId}": {
      "patch": {
        "tags": [
          "Gdap"
        ],
        "summary": "Update a customer relationship",
        "description": "Updates a delegated admin relationship. Since this resource is specific to the Microsoft provider, this request is only valid for provider customers that belong to a Microsoft tenant/provider.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateDelegatedAdminRelationship",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "relationshipId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update. This body contains an JSON Object with two properties (providerInstanceId, AutoExtendEnabled).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerRelationshipRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Gdap"
        ],
        "summary": "Terminate a delegated admin relationship",
        "description": "**Available to the roles:** csp",
        "operationId": "TerminateDelegatedAdminRelationship",
        "parameters": [
          {
            "name": "relationshipId",
            "in": "path",
            "description": "Id of the relationship",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "Id of the provider instance where relationship is being terminated",
            "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"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Invoices/{id}/onetime-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice one time line items of an invoice, using pagination.",
        "description": "Returns a subset of the invoice one time line items of an invoice on each request. Pass the continuation token in the headers to obtain the remaining items.\r\n**Available to the roles:** csp",
        "operationId": "GetInvoiceOneTimeLineItems",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of items to be returned at max per page. The size can range between 1 and 2000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "This header should not be set when the first page is desired. For the second page and onwards, pass the continuation token received in the response body.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed with success and returns the line items and the continuation token (if applicable).",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOneTimeLineItemViewModelSeekBasedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOneTimeLineItemViewModelSeekBasedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOneTimeLineItemViewModelSeekBasedCollection"
                }
              }
            }
          },
          "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}/usage-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice usage line items of an invoice, using pagination.",
        "description": "Returns a subset of the invoice usage line items of an invoice on each request. Pass the continuation token in the headers to obtain the remaining items.\r\n**Available to the roles:** csp",
        "operationId": "GetInvoiceUsageLineItems",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of items to be returned at max per page. The size can range between 1 and 2000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "This header should not be set when the first page is desired. For the second page and onwards, pass the continuation token received in the response body.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed with success and returns the line items and the continuation token (if applicable).",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceUsageLineItemViewModelSeekBasedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceUsageLineItemViewModelSeekBasedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceUsageLineItemViewModelSeekBasedCollection"
                }
              }
            }
          },
          "400": {
            "description": "There is an error in the parameters sent in the request.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Please use a valid authorization token."
          },
          "403": {
            "description": "You don't have enough permissions to access this information."
          },
          "404": {
            "description": "The requested usage invoice does not exist. Any line items previously obtained should be discarded.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "A server error has happened during the request. Please try again later or contact support.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Invoices": {
      "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}/license-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice license line items of an invoice, using pagination.",
        "description": "Returns a subset of the invoice license line items of an invoice on each request. Pass the continuation token in the headers to obtain the remaining items.\r\n**Available to the roles:** csp",
        "operationId": "GetInvoiceLicenseLineItems",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of items to be returned at max per page. The size can range between 1 and 2000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "This header should not be set when the first page is desired. For the second page and onwards, pass the continuation token received in the response body.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed with success and returns the line items and the continuation token (if applicable).",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLicenseLineItemViewModelSeekBasedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLicenseLineItemViewModelSeekBasedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLicenseLineItemViewModelSeekBasedCollection"
                }
              }
            }
          },
          "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/Invoices/{id}/dailyratedusage-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice daily rated usage line items of an invoice, using pagination.",
        "description": "Returns a subset of the invoice daily rated usage line items of an invoice on each request. Pass the continuation token in the headers to obtain the remaining items.\r\n**Available to the roles:** csp",
        "operationId": "GetInvoiceDailyRatedUsageLineItems",
        "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.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "This header should not be set when the first page is desired. For the second page and onwards, pass the continuation token received in the response body.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed with success and returns the line items and the continuation token (if applicable).",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemViewModelSeekBasedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemViewModelSeekBasedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemViewModelSeekBasedCollection"
                }
              }
            }
          },
          "400": {
            "description": "There is an error in the parameters sent in the request.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Please use a valid authorization token."
          },
          "403": {
            "description": "You don't have enough permissions to access this information."
          },
          "404": {
            "description": "The requested daily rated usage invoice does not exist. Any line items previously obtained should be discarded.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "A server error has happened during the request. Please try again later or contact support.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Invoices/{id}/lineitems-file": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "summary": "Sends a request to create the file to download a given invoice line items\nthrough the portal, for a given user context.\nThis endpoint is only available through the portal.",
        "description": "A model with the status of the file creation request. To view the status of the creation request use the GET variant of this endpoint.",
        "operationId": "CreateInvoiceFile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "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": "An object with the resellerId and customerId properties.\nIf you are a CSP you can set resellerId to filter by reseller, otherwise don't send a value.\nIf you are a CSP or a reseller you can set customerId to filter by customer. Otherwise don't send a value.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceLineItemsFileRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The request completed with success and your request has been queued.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLineItemsFileViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLineItemsFileViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLineItemsFileViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Either the invoice id is not valid or the file is already created or was already created.",
            "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 invoice does not exist.",
            "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": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets the status of the file used to download the given invoice line items\nthrough the portal, for a given user context.\nThis endpoint is only available through the portal.",
        "description": "A model with the status of the invoice line items file.",
        "operationId": "GetInvoiceFile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "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-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": "Obtains the model of the line items file or null if no request to create the file was done yet.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLineItemsFileViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLineItemsFileViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLineItemsFileViewModel"
                }
              }
            }
          },
          "400": {
            "description": "The invoice id is not valid.",
            "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 invoice does not exist.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "A server error has happened during the request. Please try again later or contact support.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Invoices/{id}/reseller-onetime-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice one time line items of an invoice for resellers, using pagination.",
        "description": "Returns a subset of the invoice one time line items of an invoice on each request for reseller. Pass the continuation token in the headers to obtain the remaining items.\r\n**Available to the roles:** reseller",
        "operationId": "GetInvoiceOneTimeLineItemsForReseller",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of items to be returned at max per page. The size can range between 1 and 2000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "This header should not be set when the first page is desired. For the second page and onwards, pass the continuation token received in the response body.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed with success and returns the line items and the continuation token (if applicable).",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOneTimeLineItemResellerViewModelSeekBasedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOneTimeLineItemResellerViewModelSeekBasedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOneTimeLineItemResellerViewModelSeekBasedCollection"
                }
              }
            }
          },
          "400": {
            "description": "There is an error in the parameters sent in the request.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Please use a valid authorization token."
          },
          "403": {
            "description": "You don't have enough permissions to access this information."
          },
          "404": {
            "description": "The requested onetime invoice does not exist. Any line items previously obtained should be discarded.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "A server error has happened during the request. Please try again later or contact support.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Invoices/{id}/reseller-usage-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice usage line items of an invoice for resellers, using pagination.",
        "description": "Returns a subset of the invoice usage items of an invoice on each request for the reseller. Pass the continuation token in the headers to obtain the remaining items.\r\n**Available to the roles:** reseller",
        "operationId": "GetInvoiceUsageLineItemsForReseller",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of items to be returned at max per page. The size can range between 1 and 2000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "This header should not be set when the first page is desired. For the second page and onwards, pass the continuation token received in the response body.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed with success and returns the line items and the continuation token (if applicable).",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceUsageLineItemResellerViewModelSeekBasedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceUsageLineItemResellerViewModelSeekBasedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceUsageLineItemResellerViewModelSeekBasedCollection"
                }
              }
            }
          },
          "400": {
            "description": "There is an error in the parameters sent in the request.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Please use a valid authorization token."
          },
          "403": {
            "description": "You don't have enough permissions to access this information."
          },
          "404": {
            "description": "The requested usage invoice does not exist. Any line items previously obtained should be discarded.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "A server error has happened during the request. Please try again later or contact support.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Invoices/{id}/reseller-dailyratedusage-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice daily rated usage line items of an invoice for a reseller, using pagination.",
        "description": "Returns a subset of the invoice daily rated usage items of an invoice on each request for the reseller. Pass the continuation token in the headers to obtain the remaining items.\r\n**Available to the roles:** reseller",
        "operationId": "GetInvoiceDailyRatedUsageLineItemsForReseller",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of items to be returned at max per page. The size can range between 1 and 2000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "This header should not be set when the first page is desired. For the second page and onwards, pass the continuation token received in the response body.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed with success and returns the line items and the continuation token (if applicable).",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemResellerViewModelSeekBasedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemResellerViewModelSeekBasedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemResellerViewModelSeekBasedCollection"
                }
              }
            }
          },
          "400": {
            "description": "There is an error in the parameters sent in the request.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Please use a valid authorization token."
          },
          "403": {
            "description": "You don't have enough permissions to access this information."
          },
          "404": {
            "description": "The requested daily rated usage invoice does not exist. Any line items previously obtained should be discarded.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "A server error has happened during the request. Please try again later or contact support.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Invoices/{id}/reseller-license-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice license line items of an invoice for resellers, using pagination.",
        "description": "Returns a subset of the invoice license line items of an invoice on each request for reseller. Pass the continuation token in the headers to obtain the remaining items.\r\n**Available to the roles:** reseller",
        "operationId": "GetInvoiceLicenseLineItemsForReseller",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of items to be returned at max per page. The size can range between 1 and 2000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ContinuationToken",
            "in": "header",
            "description": "This header should not be set when the first page is desired. For the second page and onwards, pass the continuation token received in the response body.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed with success and returns the line items and the continuation token (if applicable).",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLicenseLineItemResellerViewModelSeekBasedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLicenseLineItemResellerViewModelSeekBasedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceLicenseLineItemResellerViewModelSeekBasedCollection"
                }
              }
            }
          },
          "400": {
            "description": "There is an error in the parameters sent in the request.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Please use a valid authorization token."
          },
          "403": {
            "description": "You don't have enough permissions to access this information."
          },
          "404": {
            "description": "The requested onetime invoice does not exist. Any line items previously obtained should be discarded.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "A server error has happened during the request. Please try again later or contact support.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Invoices/{id}/customer-onetime-lineitems": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Gets all the invoice one time line items of an invoice for a customer, using pagination.",
        "description": "Returns a subset of the invoice one time line items of an invoice on each request for the customer. Pass the continuation token in the headers to obtain the remaining items.",
        "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": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Offers"
        ],
        "summary": "Create a new generic offer associated to a generic provider instance.",
        "description": "**Available to the roles:** csp",
        "operationId": "CreateGenericOffer",
        "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": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenericOfferViewModel"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "200": {
            "description": "OK"
          }
        },
        "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": [ ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Offers"
        ],
        "summary": "Update an offer on the provider instance.",
        "description": "Updates a specific offer on a given provider instance. Only supports offers on Generic providers.\r\n**Available to the roles:** csp",
        "operationId": "UpdateOffer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The offer Id",
            "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 offer model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditableOfferViewModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/{id}/enabled": {
      "patch": {
        "tags": [
          "Offers"
        ],
        "summary": "Enable or disable an offer.",
        "description": "Enables or disables a specific offer on a given provider instance. Only supports offers on Generic providers.\r\n**Available to the roles:** csp",
        "operationId": "UpdateOfferEnabled",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The offer Id",
            "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": "Enable or disabled the offer.",
          "content": {
            "application/json": {
              "schema": {
                "type": "boolean"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/{Id}/revenue-price": {
      "get": {
        "tags": [
          "Offers"
        ],
        "summary": "Gets a price of the Offer with the given id.",
        "description": "**Available to the roles:** csp, reseller, customer",
        "operationId": "GetOfferRevenuePrice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The offer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "The customer identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "The provider instance identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "termDuration",
            "in": "query",
            "description": "The term duration.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "billingFrequency",
            "in": "query",
            "description": "The billing frequency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customMarginRule",
            "in": "query",
            "description": "The custom margin rule.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customMarginValue",
            "in": "query",
            "description": "The custom margin value.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "segment",
            "in": "query",
            "description": "The segment.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "decimalPlaces",
            "in": "query",
            "description": "The number of decimal places to round the final price to. If not provided, uses two decimal places. If provided, must be between 0 and 8.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "matchBillingPeriod",
            "in": "query",
            "description": "Whether the price returned matches the billing period price. If false, the price returned will be for the whole term. Defaults to true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/{Id}/pre-requisite-offers": {
      "get": {
        "tags": [
          "Offers"
        ],
        "summary": "Gets the pre-requisite offers for the given offer id.",
        "operationId": "GetPreRequisiteOffers",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The offer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/upload-price-list-file": {
      "post": {
        "tags": [
          "Offers"
        ],
        "summary": "Uploads the price list file.",
        "description": "**Available to the roles:** csp",
        "operationId": "UploadPriceListFile",
        "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": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "The price list file.",
                    "format": "binary"
                  },
                  "ProviderId": {
                    "type": "string",
                    "description": "The provider identifier.",
                    "format": "uuid"
                  },
                  "Currencies": {
                    "type": "string",
                    "description": "The currencies."
                  },
                  "OfferType": {
                    "type": "string",
                    "description": "The offer type."
                  },
                  "ProviderInstances": {
                    "type": "string",
                    "description": "The provider instances."
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                },
                "ProviderId": {
                  "style": "form"
                },
                "Currencies": {
                  "style": "form"
                },
                "OfferType": {
                  "style": "form"
                },
                "ProviderInstances": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/get-offer-by-pre-requisite-and-offer-type": {
      "get": {
        "tags": [
          "Offers"
        ],
        "summary": "Gets an offer with the given prerequisiteId and offer type.",
        "operationId": "GetOfferByPreRequisiteAndOfferType",
        "parameters": [
          {
            "name": "preRequisiteId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerType",
            "in": "query",
            "description": "",
            "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"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/upload-generic-offer-image": {
      "post": {
        "tags": [
          "Offers"
        ],
        "summary": "Uploads an image file to blob storage.",
        "description": "**Available to the roles:** csp",
        "operationId": "UploadOfferImage",
        "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": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "imageFile": {
                    "type": "string",
                    "description": "The image file.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "imageFile": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/price-list-files": {
      "post": {
        "tags": [
          "Offers"
        ],
        "summary": "Sends a request to create the file to download a given price list report file\nthrough the portal, for a given user context.\nThis endpoint is only available through the portal.",
        "description": "A model with the status of the file creation request. To view the status of the creation request use the GET variant of this endpoint.",
        "operationId": "CreatePriceListReportFile",
        "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 price list report information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PriceListReportFileViewModel"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Either the report file information is not valid or the file is already created or was already created.",
            "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": "Not Found",
            "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"
                }
              }
            }
          },
          "200": {
            "description": "The request completed with success and your request has been queued."
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/get-subscription-next-term-offer-id": {
      "get": {
        "tags": [
          "Offers"
        ],
        "summary": "Gets the next term offer identifier by the subscription identifier.",
        "operationId": "GetSubscriptionNextTermOfferId",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "query",
            "description": "The subscription identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/get-all-marketplace-publishers": {
      "get": {
        "tags": [
          "Offers"
        ],
        "summary": "List all marketplace publishers in the catalog",
        "description": "**Available to the roles:** csp",
        "operationId": "GetAllMarketplacePublishers",
        "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 50.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "searchValue",
            "in": "query",
            "description": "The search query string. Required if searchField is provided. The search value has a maximum of 255 characters.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "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/MarketplacePublisherViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketplacePublisherViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketplacePublisherViewModelPagedCollection"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/get-selected-marketplace-publishers": {
      "get": {
        "tags": [
          "Offers"
        ],
        "summary": "List all selected marketplace publishers in the tenant",
        "description": "**Available to the roles:** csp",
        "operationId": "GetSeletedMarketplacePublishers",
        "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 50.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "searchValue",
            "in": "query",
            "description": "The search query string. Required if searchField is provided. The search value has a maximum of 255 characters.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "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/MarketplacePublisherViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketplacePublisherViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketplacePublisherViewModelPagedCollection"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/update-selected-marketplace-publishers": {
      "patch": {
        "tags": [
          "Offers"
        ],
        "summary": "Updates the selected marketplace publishers in the tenant",
        "description": "**Available to the roles:** csp",
        "operationId": "UpdateSeletedMarketplacePublishers",
        "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 list of publishers ids to update the list of selected marketplace publishers",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Offers/{nceOfferId}/est": {
      "get": {
        "tags": [
          "Offers"
        ],
        "summary": "Retrieve an est offer by the nce offer id.",
        "description": "Retrieves an offer with the specified GUID identifier.",
        "operationId": "GetESTOfferByNCEOfferId",
        "parameters": [
          {
            "name": "nceOfferId",
            "in": "path",
            "description": "GUID Unique identifier for the nce 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/Orders/{orderId}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Gets an order by its id.",
        "description": "The order if it exists and the user who made the request has access to it.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetById",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "The GUID identifier for the order.",
            "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": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/partnercenter-webhooks/{tenantId}/{providerInstanceId}": {
      "post": {
        "tags": [
          "PartnerCenterWebhooks"
        ],
        "summary": "Handles partner center webhooks.",
        "operationId": "PartnerCenterCallback",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The id of the provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The webhook event data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerCenterEvent"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerCenterEvent"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerCenterEvent"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerCenterEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/PortalAdministration/Logo": {
      "get": {
        "tags": [
          "PortalAdministration"
        ],
        "operationId": "GetLogoUrl",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/PortalAdministration/BrandingLogo": {
      "get": {
        "tags": [
          "PortalAdministration"
        ],
        "operationId": "GetBrandingLogoUrl",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/PortalAdministration/PortalBranding": {
      "post": {
        "tags": [
          "PortalAdministration"
        ],
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "UpdatePortalBranding",
        "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": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "companyLogo": {
                    "type": "string",
                    "format": "binary"
                  },
                  "favicon": {
                    "type": "string",
                    "format": "binary"
                  },
                  "loginPageFooterImage": {
                    "type": "string",
                    "format": "binary"
                  },
                  "RemoveLoginPageFooterImage": {
                    "type": "string"
                  },
                  "pageTitle": {
                    "type": "string"
                  },
                  "themePrimaryColor": {
                    "type": "string"
                  }
                }
              },
              "encoding": {
                "companyLogo": {
                  "style": "form"
                },
                "favicon": {
                  "style": "form"
                },
                "loginPageFooterImage": {
                  "style": "form"
                },
                "RemoveLoginPageFooterImage": {
                  "style": "form"
                },
                "pageTitle": {
                  "style": "form"
                },
                "themePrimaryColor": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "PortalAdministration"
        ],
        "operationId": "GetPortalBranding",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/PortalAdministration/AnnouncekitWidgetSlug": {
      "get": {
        "tags": [
          "PortalAdministration"
        ],
        "operationId": "GetAnnouncekitWidgetSlug",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/PortalAdministration/InvoiceSettings": {
      "get": {
        "tags": [
          "PortalAdministration"
        ],
        "summary": "Gets the invoice settings applied at the tenant level.\nThe request will only succeed if the user who performs it is a CSP\nwith the invoice settings view permission.",
        "description": "**Available to the roles:** csp",
        "operationId": "GetInvoiceSettings",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceSettings"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceSettings"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceSettings"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "PortalAdministration"
        ],
        "summary": "Updates the invoice settings applied at the tenant level.\nThe request will only succeed if the user who performs it is a CSP\nwith the invoice settings manage permission.",
        "description": "**Available to the roles:** csp",
        "operationId": "UpdateInvoiceSettings",
        "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": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSettings"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSettings"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSettings"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSettings"
              }
            }
          }
        },
        "responses": {
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/PortalAdministration/gdap-settings": {
      "get": {
        "tags": [
          "PortalAdministration"
        ],
        "summary": "Get GDAP settings",
        "description": "Gets the settings that will configure the GDAP relationships to be created.\r\n**Available to the roles:** csp",
        "operationId": "GetGdapSettings",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GdapSettingsViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GdapSettingsViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GdapSettingsViewModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "PortalAdministration"
        ],
        "summary": "Update GDAP security group",
        "description": "Updates the security group that will be assigned to GDAP relations.\r\n**Available to the roles:** csp",
        "operationId": "UpdateGdapSettings",
        "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": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GdapSettings"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GdapSettings"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GdapSettings"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GdapSettings"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/PortalAdministration/support-widget": {
      "get": {
        "tags": [
          "PortalAdministration"
        ],
        "summary": "Get support widget settings",
        "description": "Gets the settings that will configure the support widget in the portal.\r\n**Available to the roles:** csp, reseller, customer",
        "operationId": "GetSupportWidgetSettings",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupportWidgetSettingsViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportWidgetSettingsViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupportWidgetSettingsViewModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "PortalAdministration"
        ],
        "summary": "Update support widget settings",
        "description": "Updates the support widget settings\r\n**Available to the roles:** csp",
        "operationId": "UpdateSupportWidgetSettings",
        "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": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupportWidgetSettingsViewModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportWidgetSettingsViewModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupportWidgetSettingsViewModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupportWidgetSettingsViewModel"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/PortalAdministration/portal-defaults": {
      "put": {
        "tags": [
          "PortalAdministration"
        ],
        "summary": "Update Portal Defaults Settings",
        "description": "Updates the Portal Defaults Settings Of CSP or Reseller depending on User Context.\nIf it's a CSP User it will update Portal Defaults Settings of CSP.\nIf it's a Reseller User it will update Portal Defaults Settings of Reseller.",
        "operationId": "UpdatePortalDefaultsSetting",
        "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": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PortalDefaultsViewModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PortalDefaultsViewModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PortalDefaultsViewModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PortalDefaultsViewModel"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "PortalAdministration"
        ],
        "summary": "Get Portal Defaults Settings",
        "description": "Gets the Portal Defaults Settings Of CSP or Reseller depending on User Context.\nIf it's a CSP User it will get the Portal Defaults Settings of CSP.\nIf it's a Reseller User it will get the Portal Defaults Settings of Reseller.",
        "operationId": "GetDefaultCurrencySetting",
        "parameters": [
          {
            "name": "resellerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "withFallback",
            "in": "query",
            "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/PortalDefaultsViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PortalDefaultsViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PortalDefaultsViewModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/provider-instances/{providerInstanceId}/customers": {
      "get": {
        "tags": [
          "ProviderInstances"
        ],
        "summary": "Search customers in the provider instance",
        "description": "Searches for a list of customers in the provider instance.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetCustomersOnProviderInstance",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Number of the page. This is only used for frontend display. For paginating results, use the continuationToken header.",
            "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": "searchField",
            "in": "query",
            "description": "The field with which to filter the customer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchValue",
            "in": "query",
            "description": "The value to search on the field given by searchField. Returns customers where field starts with the search value.",
            "schema": {
              "type": "string"
            }
          },
          {
            "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 with which the customers are associated.",
            "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/CustomerViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "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/provider-instances/{providerInstanceId}/customers/{providerCustomerId}": {
      "post": {
        "tags": [
          "ProviderInstances"
        ],
        "summary": "Imports a customer from the provider instance",
        "description": "Imports a customer from the provider instance into the portal. If the customer does not exist, they will be created. Otherwise, their information\nis updated to match the information in the provider instance.\r\n**Available to the roles:** csp, reseller",
        "operationId": "ImportCustomerOnProviderInstance",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerCustomerId",
            "in": "path",
            "description": "The identifier for the customer in the provider instance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The identifier for the reseller with which to associate the customer.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "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/provider-instances/{providerInstanceId}/customers/{providerCustomerId}/importable-subscriptions": {
      "get": {
        "tags": [
          "ProviderInstances"
        ],
        "summary": "Gets the importable subscriptions of a customer on the provider instance",
        "description": "Gets a list of subscriptions of a customer on the provider instance.\nThe Import Customer process will try to import these subscriptions.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetCustomerImportableSubscriptions",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerCustomerId",
            "in": "path",
            "description": "The identifier for the customer in the provider instance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The identifier for the reseller with which to associate the customer.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerViewModelPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "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/provider-instances/{ProviderInstanceId}": {
      "put": {
        "tags": [
          "ProviderInstances"
        ],
        "summary": "Updates a given provider instance.",
        "description": "**Available to the roles:** csp",
        "operationId": "UpdateProviderInstance",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance to be updated.",
            "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 provider instance view model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProviderInstanceViewModel"
              }
            }
          }
        },
        "responses": {
          "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"
          },
          "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/provider-instances/billing-currencies": {
      "get": {
        "tags": [
          "ProviderInstances"
        ],
        "summary": "Gets Unique Billing Currencies in all provider instances",
        "description": "Gets a list of Billing Currencies in all existent provider instances associted to CSP, Resellers or Customers.",
        "operationId": "GetBillingCurrenciesFromProviderInstances",
        "parameters": [
          {
            "name": "resellerId",
            "in": "query",
            "description": "GUID Unique identifier for the reseller with which the customers are associated.",
            "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/ProvidersInstancesBillingCurrenciesViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProvidersInstancesBillingCurrenciesViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProvidersInstancesBillingCurrenciesViewModel"
                  }
                }
              }
            }
          },
          "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"
          },
          "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": {
      "get": {
        "tags": [
          "Providers"
        ],
        "summary": "Gets all the providers in the tenant.",
        "operationId": "GetAllProviders",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "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/Providers/Instances/SupportLicenseLegacyOfferType": {
      "get": {
        "tags": [
          "Providers"
        ],
        "summary": "Gets all the providers instances in the tenant that support the License offer type.",
        "description": "**Available to the roles:** csp",
        "operationId": "GetProvidersInstancesThatSupportLicenseLegacyOfferType",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The page number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The page size.",
            "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"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Providers/GetPartnerInformationFromProvider": {
      "get": {
        "tags": [
          "Providers"
        ],
        "summary": "Gets the provider specific information for a partner.",
        "description": "**Available to the roles:** csp",
        "operationId": "GetPartnerInformationFromProvider",
        "parameters": [
          {
            "name": "providerId",
            "in": "query",
            "description": "The providers id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tenantId",
            "in": "query",
            "description": "The id that represents the partner in the provider",
            "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"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Providers/Instances/{ProviderInstanceId}": {
      "get": {
        "tags": [
          "Providers"
        ],
        "summary": "Gets the provider instance with the given Id.",
        "operationId": "GetProviderInstanceById",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The provider instance id",
            "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/ProviderInstanceViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderInstanceViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderInstanceViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Providers/ConsentCallback": {
      "post": {
        "tags": [
          "Providers"
        ],
        "summary": "Callback endpoint used for the secure model aplication setup.",
        "operationId": "ConsentCallback",
        "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"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Found"
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Providers/CreateInstance": {
      "post": {
        "tags": [
          "Providers"
        ],
        "summary": "Creates a new instance of a provider.",
        "description": "**Available to the roles:** csp",
        "operationId": "CreateInstance",
        "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 create provider instance command",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProviderInstanceCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProviderInstanceCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProviderInstanceCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProviderInstanceCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Providers/Instances/{ProviderInstanceId}/InstanceProviderId": {
      "get": {
        "tags": [
          "Providers"
        ],
        "summary": "Gets the instance id on provider with the given Id.",
        "operationId": "GetInstanceIdOnProvider",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "The provider instance id",
            "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": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Providers/UploadProviderInstanceImage": {
      "post": {
        "tags": [
          "Providers"
        ],
        "summary": "Uploads an image file to blob storage.",
        "description": "**Available to the roles:** csp",
        "operationId": "UploadProviderInstanceImage",
        "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": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "imageFile": {
                    "type": "string",
                    "description": "The create provider instance command",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "imageFile": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/reports/business-report": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Gets the Business report info",
        "operationId": "GetBusinessReport",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              }
            }
          },
          "400": {
            "description": "Bad 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": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "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/reports/azure-plan-report": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Gets the AzurePlan report info",
        "operationId": "GetAzurePlanReport",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              }
            }
          },
          "400": {
            "description": "Bad 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": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "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/reports/current-subscriptions": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Gets the CurrentSubscriptions report info",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetCurrentSubscriptionsReport",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReport"
                }
              }
            }
          },
          "400": {
            "description": "Bad 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": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "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/reports/generated-reports": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Get generated reports.",
        "operationId": "GetGeneratedReports",
        "parameters": [
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "The id of the provider instance. Can be null.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The id of the reseller.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "The id of the customer.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The number of the page.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The size of the page",
            "required": true,
            "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/ReportFileViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportFileViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportFileViewModelPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad 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": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "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/reports/generated-reports/{id}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Get a generated report's URL and its file name.",
        "operationId": "GetGeneratedReportFile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the report.",
            "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/ReportFileDownloadViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportFileDownloadViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportFileDownloadViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad 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": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "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/Resellers": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "List all Resellers",
        "description": "Returns a list of your resellers. The resellers are returned sorted by the specified sortPropertyName.\r\n**Available to the roles:** csp",
        "operationId": "GetResellers",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "A cursor for pagination across multiple pages of results. The default value is 1.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of objects to be returned at each page. The size can range between 1 and 2000, and the default is 25.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "searchValue",
            "in": "query",
            "description": "The search query string used to obtain partial matches.\nFor example, if a reseller has company name: Reseller and you search for: seller you will obtain the reseller from the API.\nThe search value has a maximum of 255 characters.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchField",
            "in": "query",
            "description": "The property that we are using to search resellers for. The possible values are: Company.Name, InternalIdentifier or MpnId (which allows searching by the primary or secondary mpn id).\nIf searchValue was set but searchField wasn't then by default the search will be done by Company.Name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortPropertyName",
            "in": "query",
            "description": "The name of the property to sort the resellers by. Possible values: Company.Name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ascendingOrder",
            "in": "query",
            "description": "if set to `true` [ascending order].",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "The GUID identifier for the customer. This property is optional only used when we want all resellers for a specific customer, to use this property you must also set the providerInstanceId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "The GUID identifier for the provider instance. This property is optional only used when we want all resellers for a specific provider instance.",
            "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/ResellerViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResellerViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResellerViewModelPagedCollection"
                }
              }
            }
          },
          "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": [
          "Resellers"
        ],
        "summary": "Create a Reseller",
        "description": "Creates a new Reseller with the provided ResellerViewModel.\r\n**Available to the roles:** csp",
        "operationId": "CreateReseller",
        "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 reseller info to create the reseller.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResellerViewModel"
              }
            }
          }
        },
        "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": {
                  "$ref": "#/components/schemas/CreateResellerResponseViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResellerResponseViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResellerResponseViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "Retrieve a reseller",
        "description": "Retrieves a Reseller with the specified GUID identifier.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetResellerById",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "description": "GUID Unique identifier for the reseller.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResellerViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResellerViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResellerViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/margins/{providerInstanceId}": {
      "patch": {
        "tags": [
          "Resellers"
        ],
        "summary": "Updates a Reseller margins",
        "description": "Updates the specified reseller margins.\r\n**Available to the roles:** csp",
        "operationId": "UpdateMargins",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "description": "GUID Unique identifier for the reseller.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateResellerMarginsRequest"
              }
            }
          }
        },
        "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/Resellers/mpn-profile": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "Retrieve a Reseller mpn profile",
        "description": "Gets the mpn profile for a microsoft reseller based on its mpn id. This request is only valid when using a Microsoft tenant/provider.\r\n**Available to the roles:** csp",
        "operationId": "GetMpnProfile",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "The Microsoft tenant identifier to use in request to Microsoft.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mpnId",
            "in": "query",
            "description": "The mpn id of the reseller.",
            "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/MpnProfileViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MpnProfileViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MpnProfileViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/indirect-reseller-relationship": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "Retrieve an Indirect Reseller relationship",
        "description": "Gets the indirect reseller relationship for the microsoft reseller by its mpn id. This request is only valid when using a Microsoft tenant/provider.\r\n**Available to the roles:** csp",
        "operationId": "GetIndirectResellerRelationship",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "The Microsoft tenant identifier to use in request to Microsoft.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mpnId",
            "in": "query",
            "description": "The mpn id of the reseller.",
            "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/IndirectResellerRelationshipViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IndirectResellerRelationshipViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IndirectResellerRelationshipViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/microsoft-partner-agreement-signature-status": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "Retrieve a Reseller Microsoft Partner Agreement Signature Status",
        "description": "Gets the microsoft partner agreement status for a microsoft indirect reseller by its mpn id. This request is only valid when using a Microsoft tenant/provider.\r\n**Available to the roles:** csp",
        "operationId": "GetMicrosoftPartnerAgreementSignatureStatus",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "The Microsoft tenant identifier to use in request to Microsoft.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mpnId",
            "in": "query",
            "description": "The mpn id of the reseller.",
            "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/MicrosoftPartnerAgreementStatusViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftPartnerAgreementStatusViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MicrosoftPartnerAgreementStatusViewModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/internal-identifier": {
      "patch": {
        "tags": [
          "Resellers"
        ],
        "summary": "Update a Reseller internal identifier",
        "description": "Updates the specified reseller internal identifier.\r\n**Available to the roles:** csp",
        "operationId": "UpdateResellerInternalIdentifier",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "description": "GUID Unique identifier for the reseller.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The internal identifier to update the specified reseller with. 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/Resellers/{resellerId}/account-info": {
      "patch": {
        "tags": [
          "Resellers"
        ],
        "summary": "Update a Reseller account info",
        "description": "Updates the specified reseller account info.\r\n**Available to the roles:** csp",
        "operationId": "UpdateResellerAccountInfo",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "description": "GUID Unique identifier for the reseller.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the update. This body contains an JSON Object with all the properties to update the reseller account info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateResellerAccountInfoRequest"
              }
            }
          }
        },
        "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"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/azure-custom-domain": {
      "post": {
        "tags": [
          "Resellers"
        ],
        "summary": "Adds a custom domain.",
        "description": "**Available to the roles:** csp",
        "operationId": "AddCustomDomainOnAzure",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "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": {
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "202": {
            "description": "Accepted"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/custom-domain": {
      "post": {
        "tags": [
          "Resellers"
        ],
        "summary": "Adds a custom Front Door domain.",
        "description": "**Available to the roles:** csp",
        "operationId": "AddCustomDomain",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "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": {
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/dns-records/{domain}": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "Gets the records a customer needs to create on their DNS provider so that the custom domain can be validated.",
        "description": "**Available to the roles:** csp",
        "operationId": "GetRequiredDNSRecords",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "domain",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DNSRecord"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DNSRecord"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DNSRecord"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/invoice-settings": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "Gets the invoice settings applied at the reseller level.\nIf no one ever configured the settings at the reseller level then this\nmethod returns the tenant level invoice settings.\nThe request will succeed if it is a CSP performing the request\nwith invoice settings view permission or if it is a reseller\nwith that permission.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetResellerInvoiceSettings",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "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/InvoiceSettings"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceSettings"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceSettings"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Resellers"
        ],
        "summary": "Updates the invoice settings applied at the reseller level.\nThe request will succeed if it is a CSP performing the request\nwith invoice settings manage permission or if it is a reseller\nwith that permission.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "UpdateResellerInvoiceSettings",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "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": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSettings"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/secondary-mpn-ids/{providerInstanceId}": {
      "patch": {
        "tags": [
          "Resellers"
        ],
        "summary": "Update a Reseller secondary mpnIds",
        "description": "Updates the reseller's list of secondary mpn ids. Since this resource is specific to the Microsoft provider, this request is only valid for provider customers that belong to a Microsoft tenant/provider.\r\n**Available to the roles:** csp",
        "operationId": "UpdateSecondaryMpnIds",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "description": "GUID Unique identifier for the reseller.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The list of secondary mpnIds to update the reseller.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "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"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/validations/secondary-mpn-ids": {
      "get": {
        "tags": [
          "Resellers"
        ],
        "summary": "Validates the list of secondary mpn ids.",
        "description": "**Available to the roles:** csp",
        "operationId": "ValidateSecondaryMpnIds",
        "parameters": [
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "secondaryMpnIds",
            "in": "query",
            "description": "The list of secondary mpn ids.",
            "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": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/provider-instances": {
      "post": {
        "tags": [
          "Resellers"
        ],
        "summary": "Add a provider instance to the given reseller.",
        "description": "When creating the provider reseller, we validate that the reseller's company address country is supported on all its provider instances plus the newly added provider instance.\nIf not supported, then the creation attempt will fail.\r\n**Available to the roles:** csp",
        "operationId": "AddProviderInstance",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "description": "The reseller id.",
            "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": "To add the provider instance, pass a valid instance of ProviderResellerViewModel\nsetting ProviderInstanceId to the id of an instance that the reseller hasn't got\na relationship with, as well as the PriceMargin that should be set at the provider instance level.\nIf you are doing this request for a Microsoft Tier 1 provider instance then don't set ProviderResellerId\nand don't set ResellerProviderData.\n            \nFor a Microsoft Tier 2 provider instance set ProviderResellerId to the primary mpn id of the reseller,\nwhich is the mpn id that will be used for new subscription purchases\nand set ResellerProviderData to {\"IndirectResellerId\":null,\"SecondaryMpnIds\":[]} or if you have\nany secondary mpn ids set SecondaryMpnIds as an array of mpn ids, example:\n{\"IndirectResellerId\":null,\"SecondaryMpnIds\":[\"123\"]}\n            \nFor a Generic provider instance don't set ProviderResellerId and don't set ResellerProviderData.\n            \nOptionally, you can set OfferTypeMargins to specify price margins applied at the offer type level\nwhich will override the price margin applied at the provider instance level.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProviderResellerViewModel"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The request completed with success and the provider reseller was added to the reseller."
          },
          "400": {
            "description": "There is an error in the parameters sent in the request. Can happen when for example you have already created the provider reseller.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Please use a valid authorization token."
          },
          "403": {
            "description": "You don't have enough permissions to access this information."
          },
          "404": {
            "description": "The requested reseller or the provider instance you are trying to add does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "A server error has happened during the request. Please try again later or contact support.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/Resellers/{resellerId}/email-recipients/{providerInstanceId}": {
      "patch": {
        "tags": [
          "Resellers"
        ],
        "summary": "Update a Reseller email recipients.",
        "description": "Updates the reseller's list of email recipients . Since this resource is specific to the Generic provider, this request is only valid for provider customers that belong to a Generic tenant/provider.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateEmailRecipients",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "description": "GUID Unique identifier for the reseller.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "path",
            "description": "GUID Unique identifier for the provider instance.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The list of email recipients to update the reseller.",
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          },
          "required": true
        },
        "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"
          },
          "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": [ ]
          }
        ]
      },
      "head": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Perform a request to understand if the customer has at least one subscription\non the provider instance (including the resellers subscriptions) with the given status.",
        "description": "A 200 response status code if there is at least one subscription with the given parameters or 404 if not.\r\n**Available to the roles:** csp",
        "operationId": "HasSubscriptions",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The GUID identifier for the customer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "The id of the provider instance.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionStatus",
            "in": "query",
            "description": "The status filter of the subscriptions. Is required.\nCan have one of the following values: none, active, suspended, deleted, expired, pending, disabled.",
            "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"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/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/offers/{offerId}/has-base-product": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Checks if the customer has the base product for the given offer.",
        "operationId": "HasBaseProduct",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerId",
            "in": "path",
            "description": "The offer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "The provider instance identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "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}/price-margin": {
      "patch": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Update a Subscription price margin",
        "description": "Updates the specified subscription price margin.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateSubscriptionPriceMargin",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer. The subscription must belong to this customer, otherwise this request will fail.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "GUID Unique identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The price margin to update the existent subscription.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PriceMargin"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/internal-id": {
      "patch": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Update a Subscription internal id",
        "description": "Updates the specified subscription internal id.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateSubscriptionInternalId",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer. The subscription must belong to this customer, otherwise this request will fail.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "GUID Unique identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The internal id to update the existent subscription. This may be up to 255 characters.",
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/po-number": {
      "patch": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Update a Subscription PO number",
        "description": "Updates the specified subscription PO number. Allowed for the CSP, the reseller or the customer associated to the subscription.\r\n**Available to the roles:** csp, reseller, customer",
        "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}/subscription-usage-revenue-price": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Gets the subscription's usage revenue price.",
        "operationId": "GetSubscriptionUsageRevenuePrice",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customMarginRule",
            "in": "query",
            "description": "The custom price margin rule.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customMarginValue",
            "in": "query",
            "description": "The custom price margin value.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "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/Price"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Price"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Price"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/associated-reseller": {
      "patch": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Update a Subscription reseller",
        "description": "Updates the specified subscription reseller. In case the tenant is an indirect provider and the subscription type is license legacy then we will update the support contact for the given subscription. Returns `true`if the support contact was updated;otherwise `false`.\r\n**Available to the roles:** csp",
        "operationId": "UpdateSubscriptionAssociatedReseller",
        "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 new reseller to update the existent subscription.",
          "content": {
            "application/json": {
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "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/offers/{offerId}/base-product": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Retrieves the base product for the given offer identifier.",
        "operationId": "GetBaseProduct",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer identifier",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerId",
            "in": "path",
            "description": "The offer identifier",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "providerInstanceId",
            "in": "query",
            "description": "The provider instance identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "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/subscriptions/upcoming-subscriptions-renewals": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Retrieves the subscriptions with upcoming renewals.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetSubscriptionsWithUpcomingRenewals",
        "parameters": [
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier.",
            "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": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/upcoming-subscriptions-renewals": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Retrieves the customer subscriptions with upcoming renewals.",
        "operationId": "GetCustomerSubscriptionsWithUpcomingRenewals",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier.",
            "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": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/subscriptions/upcoming-subscriptions-renewals-detailed": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "operationId": "GetUpcomingSubscriptionRenewalsDetailed",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortPropertyName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ascendingOrder",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "autoRenewFilter",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerNameFilter",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resellerNameFilter",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxDaysLeftFilter",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "termDurationFilter",
            "in": "query",
            "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"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/subscriptions/upcoming-subscriptions-renewals-detailed/create-report-file": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Creates the subscriptions with upcoming renewals Report.",
        "operationId": "CreateReportFileOfUpcomingSubscriptionRenewalsDetailed",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "The customer identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "autoRenewFilter",
            "in": "query",
            "description": "The bool that allows to search by all subscriptions, renewable or not renewable",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerNameFilter",
            "in": "query",
            "description": "The string that holds customer name to use in search",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resellerNameFilter",
            "in": "query",
            "description": "The string that holds reseller name to use in search",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxDaysLeftFilter",
            "in": "query",
            "description": "The number of days left until EndDate to use in search of subscriptions",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "termDurationFilter",
            "in": "query",
            "description": "The term duration to filter subscriptions by. Valid values: \"noterm\", \"onemonth\", \"oneyear\", \"twoyears\", \"threeyears\", \"fouryears\", \"fiveyears\", \"sixyears\", or empty/null to include all terms.",
            "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/IActionResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IActionResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IActionResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "202": {
            "description": "Accepted"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/subscriptions": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "List all Subscriptions",
        "description": "The subscriptions are returned sorted by the specified sortPropertyName.\r\n**Available to the roles:** csp",
        "operationId": "GetSubscriptions",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "A cursor for pagination across multiple pages of results. The default value is 1.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of objects to be returned at each page. The size can range between 1 and 2000, and the default is 25.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "searchValue",
            "in": "query",
            "description": "The search query string.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortPropertyName",
            "in": "query",
            "description": "The name of the property to sort the customers by. Possible values: Offer.Name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ascendingOrder",
            "in": "query",
            "description": "if set to `true` [ascending order].",
            "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/SubscriptionListItemPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionListItemPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionListItemPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/sync": {
      "put": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Syncs the given subscription with the info from the provider.",
        "operationId": "SyncSubscription",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription identifier.",
            "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}/revenue-price": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get the subscription's revenue price.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetSubscriptionRevenuePrice",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customMarginRule",
            "in": "query",
            "description": "The custom margin rule as query string.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customMarginValue",
            "in": "query",
            "description": "The custom margin value as query string.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "billingFrequency",
            "in": "query",
            "description": "The billing frequency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "decimalPlaces",
            "in": "query",
            "description": "The number of decimal places to show in the price, defaults to 2. If provided, must be between 0 and 8.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 2
            }
          },
          {
            "name": "matchBillingPeriod",
            "in": "query",
            "description": "If true, price returned is for one billing period, otherwise for the entire term. Defaults to true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/grant-owner-access/{userEmail}": {
      "put": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Grants owner access to a Azure entitlement.",
        "description": "Grants owner access to a Azure entitlement.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GrantOwnerAccessToAzureEntitlement",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer. The entitlement subscription must belong to this customer, otherwise this request will fail.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "GUID Unique identifier for the entitlement subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userEmail",
            "in": "path",
            "description": "The user email to grant owner access to.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/has-azure-entitlements": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Determines whether there are any active azure entitlements for the given subscription.",
        "operationId": "HasActiveAzureEntitlements",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription id.",
            "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": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/monthly-budget": {
      "patch": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Set monthly budget for an Azure Subscription",
        "description": "Sets the monthly budget in the specified azure subscription. Since this resource is specific to the Microsoft provider, this request is only valid for provider customers that belong to a Microsoft tenant/provider.\r\n**Available to the roles:** csp, reseller",
        "operationId": "SetMonthlyBudget",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "GUID Unique identifier for the customer. The entitlement subscription must belong to this customer, otherwise this request will fail.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "GUID Unique identifier for the entitlement subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body with the info to perform the action. This body contains an JSON Object with a property (monthlyBudget).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetMonthlyBudgetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/custom-term-end-dates": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "List all Subscriptions end-dates for coterminosity.",
        "description": "Returns a list of Subscriptions end-dates for the provided customer and term duration.",
        "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-eligibility": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Gets the subscription migration eligibility.",
        "operationId": "GetSubscriptionMigrationEligibility",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "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}/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/subscriptions/outdated-subscription-consumptions": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get subscriptions with outdated consumptions",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetOutdatedSubscriptionConsumptions",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The page number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The page size.",
            "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 reseller identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/subscriptions/outdated-subscription-consumptions/files": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Exports the subscriptions with outdated consumptions in an asynchronous way.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "CreateOutdatedSubscriptionConsumptionsReportFile",
        "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"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "409": {
            "description": "Conflict"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "202": {
            "description": "Accepted"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/subscriptions/outdated-subscription-consumptions/count": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get the count of subscriptions with outdated consumptions",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetOutdatedSubscriptionConsumptionsCount",
        "parameters": [
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/subscriptions/no-pec": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get subscriptions without PEC.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetSubscriptionsWithoutPEC",
        "parameters": [
          {
            "name": "resellerId",
            "in": "query",
            "description": "The reseller identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The page number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The page size.",
            "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"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/resources/no-pec": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get resources without PEC for a given subscription.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetResourcesWithoutPEC",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/subscriptions/no-pec/count": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get the count of subscriptions without PEC.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "GetSubscriptionsWithoutPECCount",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/subscriptions/no-pec/export": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Create export of subscriptions without PEC.",
        "description": "**Available to the roles:** csp, reseller",
        "operationId": "CreateSubscriptionsWithoutPecReportFile",
        "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"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "202": {
            "description": "Accepted"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customers/{customerId}/subscriptions/{subscriptionId}/audit-logs": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Retrieve a Subscription's audit logs",
        "operationId": "GetSubscriptionAuditLogsById",
        "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": "pageNumber",
            "in": "query",
            "description": "The page number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The page size.",
            "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/SynchronizableAuditLogViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizableAuditLogViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizableAuditLogViewModelPagedCollection"
                }
              }
            }
          },
          "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/{subscriptionId}/conflicts": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get provider conflicts of a subscription.",
        "description": "**Available to the roles:** csp, reseller, customer",
        "operationId": "GetSubscriptionConflicts",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "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/RenewOfferViewModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RenewOfferViewModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RenewOfferViewModel"
                  }
                }
              }
            }
          },
          "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/terms-conditions": {
      "post": {
        "tags": [
          "TermsConditions"
        ],
        "summary": "Upload Terms and Conditions file",
        "description": "Upload a new Terms and Conditions PDF file. The file must be smaller than 10MB.\nThis will be the new Terms and Conditions file that needs to be accepted.\r\n**Available to the roles:** csp, reseller",
        "operationId": "UpdateTermsAndConditionsFile",
        "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": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "termsFile": {
                    "type": "string",
                    "description": "The terms and conditions PDF file",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "termsFile": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/terms-conditions/pending": {
      "get": {
        "tags": [
          "TermsConditions"
        ],
        "summary": "Get pending Terms and Conditions",
        "description": "Gets the terms and conditions not accepted by the current user, if they exist\r\n**Available to the roles:** csp, reseller, customer",
        "operationId": "GetPendingTermsAndConditions",
        "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"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/terms-conditions/{termsConditionsId}/acceptance": {
      "post": {
        "tags": [
          "TermsConditions"
        ],
        "summary": "Accept Terms and Conditions",
        "description": "**Available to the roles:** csp, reseller, customer",
        "operationId": "AcceptTermsAndConditionsFile",
        "parameters": [
          {
            "name": "termsConditionsId",
            "in": "path",
            "description": "The id of the terms and conditions to be accepted",
            "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": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/terms-conditions/active": {
      "get": {
        "tags": [
          "TermsConditions"
        ],
        "summary": "Get the active Terms and Conditions file",
        "description": "**Available to the roles:** csp, reseller, customer",
        "operationId": "GetActiveTermsAndConditions",
        "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"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/users/claimsToken": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Gets the current user claims token.",
        "operationId": "GetCurrentUserClaimsToken",
        "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "List all Users",
        "description": "Returns a list of your users. The users are returned sorted by the specified sortPropertyName.\r\n**Available to the roles:** csp, reseller",
        "operationId": "GetUsers",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "A cursor for pagination across multiple pages of results. The default value is 1.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of objects to be returned at each page. The size can range between 1 and 2000, and the default is 25.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "searchValue",
            "in": "query",
            "description": "The search query string.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortPropertyName",
            "in": "query",
            "description": "The name of the property to sort the customers by. Possible values: Name or Email",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ascendingOrder",
            "in": "query",
            "description": "if set to `true` [ascending order].",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "groups",
            "in": "query",
            "description": "The groups.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resellerId",
            "in": "query",
            "description": "GUID Unique identifier for the reseller. View only users in the context of the specified resellerId. In case of a reseller user this property is auto-populated.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserViewModelPagedCollection"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserViewModelPagedCollection"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserViewModelPagedCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/users/groups": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "List all Groups",
        "description": "Returns a list of groups. The groups are returned sorted by Name.",
        "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/csp/users": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Create a CSP User",
        "description": "Creates a new User with the provided UserViewModel.\r\n**Available to the roles:** csp",
        "operationId": "CreateCspUser",
        "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 user info to create the user.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserViewModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/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/reseller/{resellerId}/users": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Create a Reseller User",
        "description": "Creates a new User with the provided UserViewModel.\r\n**Available to the roles:** csp, reseller",
        "operationId": "CreateResellerUser",
        "parameters": [
          {
            "name": "resellerId",
            "in": "path",
            "description": "GUID Unique identifier for the reseller. The reseller context that the customer will be created under.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-Tenant",
            "in": "header",
            "description": "The domain used to access the portal.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "portal.cloudcockpit.com"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer eyJ0eXAiO..."
            }
          },
          {
            "name": "X-Correlation-Id",
            "in": "header",
            "description": "This header is optional and by setting it you can correlate the audit logs made by this request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The user info to create the user.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserViewModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    },
    "/v1/customer/{customerId}/users": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "List all Users for a Customer",
        "description": "Returns a list of users for the specified customer. The users are returned sorted by Name.",
        "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": [ ]
          }
        ]
      }
    },
    "/v1/Validations/CountryRules": {
      "get": {
        "tags": [
          "Validations"
        ],
        "summary": "Gets the validation rules for a given country.",
        "operationId": "GetCountryRules",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "The tenant identifier.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "The country",
            "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/CountryRulesViewModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountryRulesViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountryRulesViewModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AddProviderInstanceToCustomerRequest": {
        "required": [
          "margin",
          "providerCustomerData",
          "providerInstanceId"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          },
          "providerCustomerData": {
            "type": "string",
            "description": "The provider specific data for this customer.\nFor a microsoft provider instance the json object needs the following properties:\n- Domain (Example: TestDomain)\n- CredentialsEmail (Example: test@email.com)\n- AcceptedMCA (Example: true)\n- AgreementDate (Example: 2022-12-28T00:00:00Z)\n- KeepPrimaryInformation (Example: true)\n- FirstName (Example: Test)\n- LastName (Example: Test)\n- Email (Example: test@email.com)\n- Phone (Example: 921231231)\n- DefaultCulture (Example: en-US)\n- Language (Example: en)\n- AssociatedPartnerId (Example: 6234552)\n- Qualifications (Example: [])\n- EnableGDAP (Example: true)",
            "nullable": true
          },
          "margin": {
            "$ref": "#/components/schemas/PriceMargin"
          },
          "offerTypeMargins": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PriceMargin"
            },
            "description": "Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance.\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,
            "example": {
              "Value": {
                "license": {
                  "MarginRule": {
                    "Name": "markup"
                  },
                  "Value": 10
                }
              }
            }
          }
        },
        "additionalProperties": false,
        "description": "Request with the information of the provider instance to add to the customer."
      },
      "AlertMetric": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AlertPolicyViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Name of the Alert Policy.",
            "nullable": true
          },
          "alertType": {
            "$ref": "#/components/schemas/AlertType"
          },
          "severity": {
            "$ref": "#/components/schemas/AlertSeverity"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "If the alert is enabled or not."
          },
          "isDeleted": {
            "type": "boolean",
            "description": "If the alert is deleted or not."
          },
          "description": {
            "type": "string",
            "description": "The alert policy description.",
            "nullable": true
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConditionViewModel"
            },
            "description": "Represents the condition that will dispose an Alert.",
            "nullable": true
          },
          "conditionType": {
            "$ref": "#/components/schemas/ConditionType"
          },
          "resellerId": {
            "type": "string",
            "description": "If != null, the Alert is associated with a Reseller.",
            "format": "uuid",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "description": "If != null, the Alert is associated with a Customer.",
            "format": "uuid",
            "nullable": true
          },
          "emailRecipients": {
            "type": "string",
            "description": "The emails that will receive a notification when the alert policy is triggered.",
            "nullable": true
          },
          "permissionGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupViewModel"
            },
            "description": "The permission groups that will receive a notification when the alert policy is triggered.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Alert policy view model. This is simplified version of the alert trigger that is used for the UI."
      },
      "AlertSeverity": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AlertStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AlertType": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AlertsBySeverityCountViewModel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "AlertsReportParameters": {
        "type": "object",
        "properties": {
          "entityName": {
            "type": "string",
            "nullable": true
          },
          "sortPropertyName": {
            "type": "string",
            "nullable": true
          },
          "ascendingOrder": {
            "type": "boolean"
          },
          "alertSeverities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertSeverity"
            },
            "nullable": true
          },
          "alertStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertStatus"
            },
            "nullable": true
          },
          "alertTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertType"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuditLogOrigin": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The origin of the audit log. Possible values: User, API or System"
      },
      "AuditLogStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The status of the audit log. Possible values: Processing, Succeded or Failed"
      },
      "AuditLogViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The GUID identifier for the audit log.",
            "format": "uuid"
          },
          "customer": {
            "type": "string",
            "description": "The company name of the customer affected by this audit log. Can be null if no customer was affected.",
            "nullable": true
          },
          "reseller": {
            "type": "string",
            "description": "The company name of the reseller affected by this audit log. Can be null if no reseller was affected.",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "The timestamp when the audit log was first created.",
            "format": "date-time"
          },
          "operation": {
            "type": "string",
            "description": "The name of the operation for this audit log.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/AuditLogStatus"
          },
          "user": {
            "type": "string",
            "description": "The email of the user that initiated this audit log.",
            "nullable": true
          },
          "origin": {
            "$ref": "#/components/schemas/AuditLogOrigin"
          },
          "entityType": {
            "type": "string",
            "description": "The type of the entity affected in this audit log.",
            "nullable": true
          },
          "entityId": {
            "type": "string",
            "description": "The entity identifier affected in this audit log.",
            "format": "uuid",
            "nullable": true
          },
          "oldValues": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "A dictionary with keys of value string and values of type object that contain the old property values of the entity that was affected. If the entity was created this property will be null.",
            "nullable": true,
            "readOnly": true
          },
          "newValues": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "A dictionary with keys of value string and values of type object that contain the new property values of the entity that was affected. If the entity was deleted this property will be null.",
            "nullable": true,
            "readOnly": true
          },
          "message": {
            "type": "string",
            "description": "The message of the audit log.",
            "nullable": true
          },
          "correlationId": {
            "type": "string",
            "description": "The correlation id of the audit log.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "View model that represents an audit log."
      },
      "AuditLogViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuditLogViewModel"
            },
            "description": "The items for this page.",
            "nullable": true,
            "readOnly": true
          },
          "paginationParameters": {
            "$ref": "#/components/schemas/PaginationParameters"
          },
          "totalPages": {
            "type": "integer",
            "description": "The total number of pages available for the specified parameters and page size.",
            "format": "int32",
            "readOnly": true
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of results available for the specified parameters. Note this is typically not equal to the Count of items in the Items property, will only be equal if all the items fit in the first page.",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "description": "Indicates if there is a previous page.",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Indicates if there is a next page.",
            "readOnly": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Helper class to be used on paged collection entities"
      },
      "AutoRenewSettings": {
        "required": [
          "billingFrequency",
          "quantity",
          "term"
        ],
        "type": "object",
        "properties": {
          "term": {
            "$ref": "#/components/schemas/TermDuration"
          },
          "billingFrequency": {
            "$ref": "#/components/schemas/BillingFrequency"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "customTermEndDate": {
            "type": "string",
            "description": "The custom term end date",
            "format": "date-time",
            "nullable": true
          },
          "providerOfferId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AvailableGdapRolesViewModel": {
        "type": "object",
        "properties": {
          "defaultRoles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GdapRole"
            },
            "description": "The list of default GDAP roles that are configured in Portal Administration",
            "nullable": true
          },
          "availableRoles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GdapRole"
            },
            "description": "The list of available GDAP roles to be chosen",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the list of the default GDAP roles, as well as the roles available to be chosen for a new GDAP relationship"
      },
      "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"
      },
      "CarouselPanelUpdateViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "If provided, indicates that this is an already existing content.",
            "format": "uuid",
            "nullable": true
          },
          "link": {
            "type": "string",
            "description": "The URL that the carousel panel links to.",
            "nullable": true
          },
          "imageFile": {
            "type": "string",
            "description": "The image file to upload. Must be provided if Id is null.",
            "format": "binary",
            "nullable": true
          },
          "resellerAccess": {
            "type": "boolean",
            "description": "Whether the reseller has access to the panel."
          },
          "customerAccess": {
            "type": "boolean",
            "description": "Whether the customer has access to this panel"
          }
        },
        "additionalProperties": false,
        "description": "The view model used to update a carousel panel"
      },
      "ComparisonOperator": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the comparison operators used in a condition.\nPossible values are GreaterThan, LessThan, GreaterThanOrEqual, LessThanOrEqual and Equal."
      },
      "ConditionType": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ConditionViewModel": {
        "type": "object",
        "properties": {
          "metric": {
            "$ref": "#/components/schemas/AlertMetric"
          },
          "value": {
            "description": "The condition's value to be evaluated.\nDepending on the type of condition it may be a numeric or boolean.",
            "nullable": true
          },
          "operator": {
            "$ref": "#/components/schemas/ComparisonOperator"
          }
        },
        "additionalProperties": false
      },
      "ConflictingSubscriptionsViewModel": {
        "type": "object",
        "properties": {
          "portalSubscription": {
            "$ref": "#/components/schemas/SubscriptionConflictCheckInfoViewModel"
          },
          "providerSubscription": {
            "$ref": "#/components/schemas/SubscriptionConflictCheckInfoViewModel"
          }
        },
        "additionalProperties": false
      },
      "ConnectionContractViewModel": {
        "type": "object",
        "properties": {
          "contractConnectionId": {
            "type": "string",
            "description": "The id of the contract on the connection side.",
            "nullable": true
          },
          "contractName": {
            "type": "string",
            "nullable": true
          },
          "billingFrequency": {
            "type": "string",
            "nullable": true
          },
          "contractStartDate": {
            "type": "string",
            "format": "date-time"
          },
          "contractEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectionCustomerCreationRequest": {
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "format": "uuid"
          },
          "connectionCompanyId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectionCustomerViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "customerId": {
            "type": "string",
            "format": "uuid"
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "internalCustomerId": {
            "type": "string",
            "nullable": true
          },
          "connectionCompanyName": {
            "type": "string",
            "nullable": true
          },
          "connectionCompanyId": {
            "type": "string",
            "nullable": true
          },
          "connectionCompanyPhone": {
            "type": "string",
            "nullable": true
          },
          "isMappingSupported": {
            "type": "boolean",
            "description": "Whether or not this given item is allowed to be mapped on the connection.\nIt is up to the connection company service to determine if a company is allowed to be mapped or not.\nBy default is is true, unless specified otherwise."
          }
        },
        "additionalProperties": false
      },
      "ConnectionCustomerViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionCustomerViewModel"
            },
            "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"
      },
      "ConnectionOfferCreationRequest": {
        "type": "object",
        "properties": {
          "offerId": {
            "type": "string",
            "format": "uuid"
          },
          "offerSegment": {
            "type": "string",
            "nullable": true
          },
          "offerTerm": {
            "type": "string",
            "nullable": true
          },
          "offerBillingFrequency": {
            "type": "string",
            "nullable": true
          },
          "connectionOfferName": {
            "type": "string",
            "nullable": true
          },
          "connectionOfferId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectionOfferMappingEligibility": {
        "type": "object",
        "properties": {
          "isEligible": {
            "type": "boolean",
            "description": "If true, then we can map the offer with the given OfferId, Segment, Term, BillingFrequency\nto the connection."
          }
        },
        "additionalProperties": false,
        "description": "A model for the eligibility for a given OfferId, Segment, Term, BillingFrequency\nfor a given connection. If eligible, meaning that we support mapping the offer\nwith those parameters to the connections, then IsEligible will be true."
      },
      "ConnectionOfferViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "offerId": {
            "type": "string",
            "format": "uuid"
          },
          "offerName": {
            "type": "string",
            "nullable": true
          },
          "providerOfferId": {
            "type": "string",
            "nullable": true
          },
          "offerSegment": {
            "type": "string",
            "nullable": true
          },
          "offerTerm": {
            "type": "string",
            "nullable": true
          },
          "offerBillingFrequency": {
            "type": "string",
            "nullable": true
          },
          "connectionOfferName": {
            "type": "string",
            "nullable": true
          },
          "connectionOfferId": {
            "type": "string",
            "nullable": true
          },
          "offerType": {
            "type": "string",
            "nullable": true
          },
          "isMappingSupported": {
            "type": "boolean",
            "description": "Whether or not this given item is allowed to be mapped on the connection.\nIt is up to the connection offer service to determine if an offer is allowed to be mapped or not.\nBy default is is true, unless specified otherwise."
          }
        },
        "additionalProperties": false
      },
      "ConnectionOfferViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionOfferViewModel"
            },
            "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"
      },
      "ConnectionSubscriptionCreationRequest": {
        "type": "object",
        "properties": {
          "subscriptionId": {
            "type": "string",
            "format": "uuid"
          },
          "contractConnectionId": {
            "type": "string",
            "nullable": true
          },
          "subscriptionBillingFrequency": {
            "$ref": "#/components/schemas/BillingFrequency"
          },
          "subscriptionStartDate": {
            "type": "string",
            "format": "date-time"
          },
          "subscriptionOfferType": {
            "$ref": "#/components/schemas/OfferType"
          }
        },
        "additionalProperties": false
      },
      "ConnectionSubscriptionViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the connection subscription.",
            "format": "uuid",
            "example": "fd35007c-0155-4057-b59a-48ececd5bb94"
          },
          "subscriptionId": {
            "type": "string",
            "format": "uuid"
          },
          "connectorConnectionId": {
            "type": "string",
            "format": "uuid"
          },
          "contractConnectionId": {
            "type": "string",
            "description": "The id of the contract on the connection's side.",
            "nullable": true
          },
          "connectionContractName": {
            "type": "string",
            "nullable": true
          },
          "offerName": {
            "type": "string",
            "nullable": true
          },
          "offerId": {
            "type": "string",
            "format": "uuid"
          },
          "customerName": {
            "type": "string",
            "nullable": true
          },
          "connectionCustomerId": {
            "type": "string",
            "format": "uuid"
          },
          "providerSubscriptionId": {
            "type": "string",
            "nullable": true
          },
          "offerSegment": {
            "type": "string",
            "nullable": true
          },
          "offerTerm": {
            "type": "string",
            "nullable": true
          },
          "offerBillingFrequency": {
            "type": "string",
            "nullable": true
          },
          "connectionContractServiceId": {
            "type": "string",
            "nullable": true
          },
          "connectionContractServiceName": {
            "type": "string",
            "nullable": true
          },
          "isMappingSupported": {
            "type": "boolean",
            "description": "Whether or not this given item is allowed to be mapped on the connection.\nIt is up to the connection subscription service to determine if a subscription is allowed to be mapped or not.\nBy default it is true, unless specified otherwise."
          },
          "syncStatus": {
            "type": "string",
            "description": "The sync status of the subscription.\nCould be syncing, synced or outofsync.",
            "nullable": true,
            "example": "synced"
          }
        },
        "additionalProperties": false
      },
      "ConnectionSubscriptionViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionSubscriptionViewModel"
            },
            "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"
      },
      "ConnectorConnectionCreationRequest": {
        "required": [
          "alias",
          "connectorId"
        ],
        "type": "object",
        "properties": {
          "alias": {
            "type": "string",
            "description": "A friendly name to reference this specific connection.\nMust be set and have at max 128 characters.",
            "nullable": true,
            "example": "My connection"
          },
          "connectorId": {
            "type": "integer",
            "description": "The id of the connector to whom the connection should be associated to.",
            "format": "int32"
          },
          "credentials": {
            "type": "string",
            "description": "A JSON serialized string that contains the credentials needed to be able\nto connect to the connector.\nFor Autotask we expect a JSON string with the following structure:\n{\n    \"UserName\": \"exampleUserName\",\n    \"Password\": \"exampleStrongPassword\"\n}",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The request body to create a new connector connection."
      },
      "ConnectorConnectionViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the connection to the connector.",
            "format": "uuid",
            "example": "78e42cbc-4dd6-4de1-8534-db219ebaacd8"
          },
          "alias": {
            "type": "string",
            "description": "The friendly name of the connector connection.\nHas at max 128 characters.",
            "nullable": true,
            "example": "Euro Autotask"
          },
          "connectorId": {
            "type": "integer",
            "description": "The id to whom the connection refers to.",
            "format": "int32",
            "example": 1
          },
          "connectorName": {
            "type": "string",
            "description": "The name of the connector to whom the connection refers to.",
            "nullable": true,
            "example": "Autotask."
          }
        },
        "additionalProperties": false,
        "description": "The representation of a connection to a given Connector."
      },
      "ConnectorViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The id of the connector.",
            "format": "int32",
            "example": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the connector.",
            "nullable": true,
            "example": "Autotask"
          },
          "imageUrl": {
            "type": "string",
            "description": "An absolute URL that points to the logo of the connector.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The representation of a connector."
      },
      "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
      },
      "CountryRulesViewModel": {
        "type": "object",
        "properties": {
          "iso2Code": {
            "type": "string",
            "nullable": true
          },
          "defaultCulture": {
            "type": "string",
            "nullable": true
          },
          "isStateRequired": {
            "type": "boolean"
          },
          "supportedLanguagesList": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "supportedStatesList": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "supportedCulturesList": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "isPostalCodeRequired": {
            "type": "boolean"
          },
          "postalCodeRegex": {
            "type": "string",
            "nullable": true
          },
          "isCityRequired": {
            "type": "boolean"
          },
          "isVatIdSupported": {
            "type": "boolean"
          },
          "taxIdFormat": {
            "type": "string",
            "nullable": true
          },
          "taxIdSample": {
            "type": "string",
            "nullable": true
          },
          "vatIdRegex": {
            "type": "string",
            "nullable": true
          },
          "isTaxIdSupported": {
            "type": "boolean"
          },
          "isTaxIdOptional": {
            "type": "boolean"
          },
          "customerOrganizationRegistrationNumberRegex": {
            "type": "string",
            "nullable": true
          },
          "customerOrganizationRegistrationNumberSample": {
            "type": "string",
            "nullable": true
          },
          "customerOrganizationRegistrationNumberRequired": {
            "type": "boolean"
          },
          "customerOrganizationPhoneNumberRequired": {
            "type": "boolean"
          },
          "phoneNumberRegex": {
            "type": "string",
            "nullable": true
          },
          "countryCallingCodesList": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateCustomerUserRequest": {
        "required": [
          "customerUser",
          "providerInstanceId"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          },
          "customerUser": {
            "$ref": "#/components/schemas/CustomerUserViewModel"
          }
        },
        "additionalProperties": false
      },
      "CreateDelegatedAdminRelationshipRequest": {
        "required": [
          "autoExtendEnabled",
          "displayName",
          "providerInstanceId"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          },
          "displayName": {
            "type": "string",
            "description": "The display name to set in the relationship. This may be up to 50 characters.",
            "nullable": true
          },
          "autoExtendEnabled": {
            "type": "boolean",
            "description": "The flag to indicate whether the relationship is auto extend enabled."
          },
          "customSelectedGdapRolesIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of ids of the custom GDAP roles selection.\nIn the absence of this property (null), a new relationship with the default roles set in the portal will be created.\nThe ids of the possible roles to chose from can be found here https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#all-roles",
            "nullable": true,
            "example": [
              "729827e3-9c14-49f7-bb1b-9608f156bbb8",
              "4d6ac14f-3453-41d0-bef9-a3e0c569773a"
            ]
          }
        },
        "additionalProperties": false
      },
      "CreateInvoiceLineItemsFileRequest": {
        "type": "object",
        "properties": {
          "resellerId": {
            "type": "string",
            "description": "If you are a CSP you can set resellerId to filter by reseller, otherwise don't send a value.",
            "format": "uuid",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "description": "If you are a CSP or a reseller you can set customerId to filter by customer. Otherwise don't send a value.",
            "format": "uuid",
            "nullable": true
          },
          "fileFormat": {
            "type": "string",
            "description": "The file format culture to use in generating the file.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The class with the parameters that are allowed in the request to create an invoice line items file."
      },
      "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."
      },
      "CreateProviderInstanceCommand": {
        "type": "object",
        "properties": {
          "providerId": {
            "type": "string",
            "description": "The id of the provider",
            "format": "uuid"
          },
          "alias": {
            "type": "string",
            "description": "The alias for the provider instance",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "description": "The image that to graphically represent the instance",
            "nullable": true
          },
          "offerTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OfferType"
            },
            "description": "The list of offer types that the provider instance allows selling.",
            "nullable": true
          },
          "supportedCountries": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Contains all the supported countries available for offer purchasing for the provider instance.",
            "nullable": true
          },
          "providerData": {
            "type": "string",
            "description": "The instance data that is specific to the provider",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Command for creating a new provider instance"
      },
      "CreateResellerResponseViewModel": {
        "type": "object",
        "properties": {
          "resellerId": {
            "type": "string",
            "description": "The id of the created reseller.",
            "format": "uuid",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the response obtained when performing a request to create a reseller."
      },
      "Currency": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the currency.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomDomainStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomerAccountInfoViewModel": {
        "required": [
          "addressLine1",
          "city",
          "companyName",
          "country",
          "email",
          "firstName",
          "lastName",
          "phone",
          "state",
          "zip"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string",
            "description": "The name of the company. This may be up to 255 characters.",
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "description": "The company tax Id. This may be up to 255 characters.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "The company country code in the ISO 3166-1 alpha-2 standard.",
            "nullable": true,
            "example": "PT"
          },
          "addressLine1": {
            "type": "string",
            "description": "The company address line 1. This may be up to 255 characters.",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "description": "The company address line 2. This may be up to 255 characters.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "The company city. This may be up to 255 characters.",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "The company State. This may be up to 255 characters.",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "description": "The company ZIP. This may be up to 30 characters.",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "The company primary contact first name. This may be up to 255 characters.",
            "nullable": true
          },
          "middleName": {
            "type": "string",
            "description": "The company primary contact middle name. This may be up to 255 characters.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "The company primary contact last name. This may be up to 255 characters.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The company primary contact email. This may be up to 255 characters.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "The company primary contact phone. This may be up to 30 characters.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "View model that represents a customer."
      },
      "CustomerAssociationViewModel": {
        "type": "object",
        "properties": {
          "resellerId": {
            "type": "string",
            "description": "The reseller id.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the partner.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The viewmodel for the customer relationships."
      },
      "CustomerCreationError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The creation error for this provider customer. This property will only have a diferent value than None if the Status is equal to Failed.\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."
      },
      "CustomerViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerViewModel"
            },
            "description": "The items for this page.",
            "nullable": true,
            "readOnly": true
          },
          "paginationParameters": {
            "$ref": "#/components/schemas/PaginationParameters"
          },
          "totalPages": {
            "type": "integer",
            "description": "The total number of pages available for the specified parameters and page size.",
            "format": "int32",
            "readOnly": true
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of results available for the specified parameters. Note this is typically not equal to the Count of items in the Items property, will only be equal if all the items fit in the first page.",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "description": "Indicates if there is a previous page.",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Indicates if there is a next page.",
            "readOnly": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Helper class to be used on paged collection entities"
      },
      "DNSRecord": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DashboardSummaryViewModel": {
        "type": "object",
        "properties": {
          "customerCount": {
            "type": "integer",
            "description": "The count of customers",
            "format": "int32",
            "nullable": true
          },
          "resellerCount": {
            "type": "integer",
            "description": "The count of resellers",
            "format": "int32",
            "nullable": true
          },
          "subscriptionCount": {
            "type": "integer",
            "description": "The count of non trial active subscriptions",
            "format": "int32",
            "nullable": true
          },
          "seatsCount": {
            "type": "integer",
            "description": "The count of all seats of active non trial subscriptions",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DayRange": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminAccessAssignmentStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminAccessAssignmentViewModel": {
        "type": "object",
        "properties": {
          "accessContainer": {
            "$ref": "#/components/schemas/DelegatedAdminAccessContainerViewModel"
          },
          "accessDetails": {
            "$ref": "#/components/schemas/DelegatedAdminAccessDetails"
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time in UTC time when the access assignment was created. Read-only.",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the access assignment. Read-only.",
            "nullable": true
          },
          "lastModifiedDateTime": {
            "type": "string",
            "description": "The date and time in UTC time when this access assignment was last modified. Read-only.",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/DelegatedAdminAccessAssignmentStatus"
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminAccessContainerType": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminAccessContainerViewModel": {
        "type": "object",
        "properties": {
          "accessContainerId": {
            "type": "string",
            "description": "The identifier of the access container (for example, a security group). \nFor \"securityGroup\" access containers, this must be a valid ID of an Azure AD security group in the Microsoft partner's tenant.",
            "nullable": true
          },
          "accessContainerType": {
            "$ref": "#/components/schemas/DelegatedAdminAccessContainerType"
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminAccessDetails": {
        "type": "object",
        "properties": {
          "unifiedRoles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedRole"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminAccessDetailsViewModel": {
        "type": "object",
        "properties": {
          "unifiedRoles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedRoleViewModel"
            },
            "description": "The directory roles that the Microsoft partner is assigned in the customer tenant.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminRelation": {
        "type": "object",
        "properties": {
          "relationshipId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "duration": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "autoExtendDuration": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "customer": {
            "$ref": "#/components/schemas/DelegatedAdminRelationCustomerParticipant"
          },
          "status": {
            "$ref": "#/components/schemas/DelegatedAdminRelationStatus"
          },
          "accessDetails": {
            "$ref": "#/components/schemas/DelegatedAdminAccessDetails"
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminRelationCustomerParticipant": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminRelationStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DelegatedAdminRelationshipViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the relationship.",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "description": "The display name of the relationship.",
            "nullable": true
          },
          "duration": {
            "type": "string",
            "description": "The duration of the relationship",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/DelegatedAdminRelationStatus"
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date when the relationship was created",
            "format": "date-time",
            "nullable": true
          },
          "activatedDateTime": {
            "type": "string",
            "description": "The date when the relationship was activated",
            "format": "date-time",
            "nullable": true
          },
          "lastModifiedDateTime": {
            "type": "string",
            "description": "The date when the relationship was last modified",
            "format": "date-time",
            "nullable": true
          },
          "endDateTime": {
            "type": "string",
            "description": "The date when the relationship ends",
            "format": "date-time",
            "nullable": true
          },
          "accessDetails": {
            "$ref": "#/components/schemas/DelegatedAdminAccessDetailsViewModel"
          },
          "autoExtendDuration": {
            "type": "string",
            "description": "The auto extend duration of the relationship",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeleteCustomerUserRequest": {
        "required": [
          "providerInstanceId"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "DigestRecurrency": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "EditableOfferViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the offer.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the offer.",
            "nullable": true
          },
          "providerOfferId": {
            "type": "string",
            "description": "The provider identifier 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"
          },
          "providerInstanceId": {
            "type": "string",
            "description": "The offer provider name.",
            "format": "uuid"
          },
          "isAddon": {
            "type": "boolean",
            "description": "The value indicating whether this offer is addon."
          },
          "preRequisites": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The pre requisites offers for this offer.",
            "nullable": true
          },
          "minQuantity": {
            "type": "integer",
            "description": "The minimum quantity for this offer.",
            "format": "int32"
          },
          "maxQuantity": {
            "type": "integer",
            "description": "The maximum quantity for this offer.",
            "format": "int32"
          },
          "listPrice": {
            "type": "number",
            "description": "The list price for this offer (per month).",
            "format": "double"
          },
          "erpPrice": {
            "type": "number",
            "description": "The ERP price for this offer (per month).",
            "format": "double"
          },
          "terms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermDuration"
            },
            "description": "List of terms for this offer.",
            "nullable": true
          },
          "billingFrequencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BillingFrequency"
            },
            "description": "List of billing frequencies for this offer.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "View model for offers that are editable."
      },
      "EmailDigestType": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The types of email digests"
      },
      "EmailDigestViewModel": {
        "type": "object",
        "properties": {
          "resellerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "digestType": {
            "$ref": "#/components/schemas/EmailDigestType"
          },
          "isActive": {
            "type": "boolean"
          },
          "subject": {
            "type": "string",
            "nullable": true
          },
          "recipients": {
            "type": "string",
            "nullable": true
          },
          "recurrency": {
            "$ref": "#/components/schemas/DigestRecurrency"
          },
          "specificSettings": {
            "$ref": "#/components/schemas/EmailDigestsSpecificSettingsViewModel"
          }
        },
        "additionalProperties": false
      },
      "EmailDigestsSpecificSettingsViewModel": {
        "type": "object",
        "properties": {
          "subscriptionEndDateRange": {
            "$ref": "#/components/schemas/DayRange"
          }
        },
        "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."
      },
      "FileStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The possible values that a File can go through: Queued, Processing, Available, Failed."
      },
      "GdapRole": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isRecommended": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "GdapSettings": {
        "type": "object",
        "properties": {
          "securityGroup": {
            "type": "string",
            "description": "The name of the security group.",
            "nullable": true
          },
          "defaultRolesIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of the ids of the roles applied by default to new GDAP relationships",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "This model contains the settings that will be used for GDAP."
      },
      "GdapSettingsViewModel": {
        "type": "object",
        "properties": {
          "securityGroup": {
            "type": "string",
            "description": "The name of the security group.",
            "nullable": true
          },
          "defaultRolesIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of the ids of the roles applied by default to new GDAP relationships",
            "nullable": true
          },
          "availableRoles": {
            "$ref": "#/components/schemas/AvailableGdapRolesViewModel"
          }
        },
        "additionalProperties": false,
        "description": "Represents the GDAP settings, including the objects for the available and default roles"
      },
      "GenericOfferViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the offer.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the offer.",
            "nullable": true
          },
          "providerOfferId": {
            "type": "string",
            "description": "The provider identifier 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"
          },
          "providerInstanceId": {
            "type": "string",
            "description": "The offer provider name.",
            "format": "uuid"
          },
          "isAddon": {
            "type": "boolean",
            "description": "The value indicating whether this offer is addon."
          },
          "preRequisites": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The pre requisites offers for this offer.",
            "nullable": true
          },
          "minQuantity": {
            "type": "integer",
            "description": "The minimum quantity for this offer.",
            "format": "int32"
          },
          "maxQuantity": {
            "type": "integer",
            "description": "The maximum quantity for this offer.",
            "format": "int32"
          },
          "listPrice": {
            "type": "number",
            "description": "The list price for this offer (per month).",
            "format": "double"
          },
          "erpPrice": {
            "type": "number",
            "description": "The ERP price for this offer (per month).",
            "format": "double"
          },
          "terms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermDuration"
            },
            "description": "List of terms for this offer.",
            "nullable": true
          },
          "billingFrequencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BillingFrequency"
            },
            "description": "List of billing frequencies for this offer.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Generic provider instance offer model structure."
      },
      "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"
      },
      "IActionResult": {
        "type": "object",
        "additionalProperties": false
      },
      "IndirectResellerRelationshipViewModel": {
        "type": "object",
        "properties": {
          "indirectResellerId": {
            "type": "string",
            "description": "The id of the indirect reseller, i.e, its tenant id in partner center.",
            "nullable": true,
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the indirect reseller.",
            "nullable": true,
            "readOnly": true
          },
          "state": {
            "type": "string",
            "description": "The state of the relationship. For example, Active.",
            "nullable": true,
            "readOnly": true
          },
          "mpnId": {
            "type": "string",
            "description": "The mpn id of the indirect reseller.",
            "nullable": true,
            "readOnly": true
          },
          "location": {
            "type": "string",
            "description": "The location associated to the MpnId.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "InternalServerErrorResponse": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "The HTTP status code that represents a specific error scenario.",
            "format": "int32",
            "readOnly": true,
            "example": 500
          },
          "type": {
            "type": "string",
            "description": "The type of error that occurred.",
            "nullable": true,
            "readOnly": true,
            "example": "NullReferenceException"
          },
          "description": {
            "type": "string",
            "description": "Describes the error scenario that occurred.",
            "nullable": true,
            "readOnly": true,
            "example": "An error happened processing your request. Please contact support."
          },
          "correlationId": {
            "type": "string",
            "description": "The correlationId of the request that originated the error.",
            "nullable": true,
            "readOnly": true,
            "example": "685043EA-6D49-4ACE-8BDB-CCE9D3E2DBD0"
          }
        },
        "additionalProperties": false,
        "description": "An example of the API response when an internal server happens."
      },
      "InvoiceDailyRatedUsageLineItemResellerViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id that uniquely identifies a daily rated usage invoice line item.",
            "format": "uuid",
            "example": "A0D0759D-49C9-49C6-83FA-83C92749CBEB"
          },
          "customerProviderId": {
            "type": "string",
            "description": "The id of customer on the provider's side associated with the charge.",
            "nullable": true,
            "example": "F9C5A7CE-EC5C-4DD9-ADA4-F4DE10DE8E94"
          },
          "billingCurrency": {
            "type": "string",
            "description": "The billing currency code, in 3 letter format.",
            "nullable": true,
            "example": "EUR"
          },
          "customerId": {
            "type": "string",
            "description": "The id of the customer associated with this charge.\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": "6BC16733-4A2F-4393-B9F4-89B0AED854C7"
          },
          "customerName": {
            "type": "string",
            "description": "The company name of the customer.",
            "nullable": true,
            "example": "Customer name"
          },
          "customerInternalId": {
            "type": "string",
            "description": "The internal id of the customer associated with this charge.",
            "nullable": true,
            "example": "CustomerTest"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated with the charge.\nCan be null, for example when the CSP removed the relationship with the customer on the provider side\nand the subscription wasn't in our system when that happened.",
            "format": "uuid",
            "nullable": true,
            "example": "58F0AA3E-5152-4C1E-8E39-10D20F908C1F"
          },
          "providerSubscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated with this charge on the provider's side.",
            "nullable": true,
            "example": "E896E6F0-9BEE-4F3F-9138-38737037A627"
          },
          "subscriptionName": {
            "type": "string",
            "description": "The friendly name of the subscription.",
            "nullable": true,
            "example": "Azure plan"
          },
          "subscriptionInternalId": {
            "type": "string",
            "description": "The internal id of the subscription associated with this charge.",
            "nullable": true,
            "example": "SubscriptionTest"
          },
          "entitlementId": {
            "type": "string",
            "description": "The id of the azure subscription associated to the charge.",
            "nullable": true,
            "example": "fd666eca-477d-4f30-95ac-9ff265ce22aa"
          },
          "entitlementDescription": {
            "type": "string",
            "description": "The name of the azure subscription associated to the charge.",
            "nullable": true,
            "example": "Subscription-Demo"
          },
          "resourceGroup": {
            "type": "string",
            "description": "The name of the resource group associated to the charge.",
            "nullable": true,
            "example": "Demo-RG"
          },
          "pecAwarded": {
            "type": "boolean",
            "description": "A boolean value indicating if the PEC was awarded on this charge.",
            "example": true
          },
          "subtotalForReseller": {
            "type": "number",
            "description": "The cost the reseller pays for the subscription on this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 96.54238
          },
          "subtotalForCustomer": {
            "type": "number",
            "description": "The price the customer pays for the subscription on this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 98.015
          },
          "customerPriceMarginRule": {
            "type": "string",
            "description": "The margin rule and value applied at the customer level.\nIf there is a price margin applied at the offer category, then that is the one chosen.\nHowever, if the subscription price margin is set, then it overrides this one.",
            "nullable": true,
            "example": "erpminudiscount"
          },
          "customerPriceMargin": {
            "type": "number",
            "description": "The margin value applied at the customer level.\nIf there is a price margin applied at the offer category, then that is the one chosen.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "subscriptionPriceMarginRule": {
            "type": "string",
            "description": "The margin rule applied at the subscription level (can be null).\nThis margin overrides the customer's price margin, if it is set.\nWe still show both the customer and subscription price margin.",
            "nullable": true,
            "example": "erpminudiscount"
          },
          "subscriptionPriceMargin": {
            "type": "number",
            "description": "The margin value applied at the subscription level (can be null).\nThis margin overrides the customer's price margin, if it is set.\nWe still show both the customer and subscription price margin.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "subscriptionPONumber": {
            "type": "string",
            "description": "The purchase order number of the subscription associated with this charge.",
            "nullable": true,
            "example": "8543943821"
          }
        },
        "additionalProperties": false,
        "description": "A model that represents a single charge of a daily rated usage invoice for a reseller.\nIn the case of the Microsoft provider each line item represents an **Azure Pay-As-You-Go** charge\ngrouped by Partner Earned Credit (PEC) and resource group of an azure entitlement of an azure plan subscription of a customer."
      },
      "InvoiceDailyRatedUsageLineItemResellerViewModelSeekBasedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemResellerViewModel"
            },
            "description": "The items in this particular seek operation.",
            "nullable": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.\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."
      },
      "InvoiceDailyRatedUsageLineItemViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id that uniquely identifies a daily rated usage invoice line item.",
            "format": "uuid",
            "example": "A0D0759D-49C9-49C6-83FA-83C92749CBEB"
          },
          "customerProviderId": {
            "type": "string",
            "description": "The id of customer on the provider's side associated with the charge.",
            "nullable": true,
            "example": "F9C5A7CE-EC5C-4DD9-ADA4-F4DE10DE8E94"
          },
          "billingCurrency": {
            "type": "string",
            "description": "The billing currency code, in 3 letter format.",
            "nullable": true,
            "example": "EUR"
          },
          "resellerId": {
            "type": "string",
            "description": "The id of the reseller associated with this charge.\nCan be null, for example when the customer must pay directly to the CSP.",
            "format": "uuid",
            "nullable": true,
            "example": "D600EEC1-84C2-486D-84C1-0EE50139F99B"
          },
          "resellerName": {
            "type": "string",
            "description": "The name of the associated reseller.",
            "nullable": true,
            "example": "Reseller name"
          },
          "resellerInternalId": {
            "type": "string",
            "description": "The internal id of the reseller associated with this charge.",
            "nullable": true,
            "example": "ResellerTest"
          },
          "customerId": {
            "type": "string",
            "description": "The id of the customer associated to this 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": "6BC16733-4A2F-4393-B9F4-89B0AED854C7"
          },
          "customerName": {
            "type": "string",
            "description": "The company name of the customer.",
            "nullable": true,
            "example": "Customer name"
          },
          "customerInternalId": {
            "type": "string",
            "description": "The internal id of the customer associated with this charge.",
            "nullable": true,
            "example": "CustomerTest"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated with the charge.\nCan be null, for example when the CSP removed the relationship with the customer on the provider side\nand the subscription wasn't in our system when that happened.",
            "format": "uuid",
            "nullable": true,
            "example": "58F0AA3E-5152-4C1E-8E39-10D20F908C1F"
          },
          "providerSubscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated to this charge on the provider's side.",
            "nullable": true,
            "example": "E896E6F0-9BEE-4F3F-9138-38737037A627"
          },
          "subscriptionName": {
            "type": "string",
            "description": "The friendly name of the subscription.",
            "nullable": true,
            "example": "Azure plan"
          },
          "subscriptionInternalId": {
            "type": "string",
            "description": "The internal id of the subscription associated with this charge.",
            "nullable": true,
            "example": "SubscriptionTest"
          },
          "entitlementId": {
            "type": "string",
            "description": "The id of the azure subscription associated to the charge.",
            "nullable": true,
            "example": "fd666eca-477d-4f30-95ac-9ff265ce22aa"
          },
          "entitlementDescription": {
            "type": "string",
            "description": "The name of the azure subscription associated to the charge.",
            "nullable": true,
            "example": "Subscription-Demo"
          },
          "resourceGroup": {
            "type": "string",
            "description": "The name of the resource group associated to the charge.",
            "nullable": true,
            "example": "Demo-RG"
          },
          "pecAwarded": {
            "type": "boolean",
            "description": "A boolean value indicating if the PEC was awarded on this charge.",
            "example": true
          },
          "subtotal": {
            "type": "number",
            "description": "The cost the CSP pays for the subscription on this charge before taxes.",
            "format": "double",
            "example": 94.00714
          },
          "subtotalForReseller": {
            "type": "number",
            "description": "The cost the reseller pays for the subscription on this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 96.54238
          },
          "subtotalForCustomer": {
            "type": "number",
            "description": "The price the customer pays for the subscription on this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 98.015
          },
          "resellerPriceMarginRule": {
            "type": "string",
            "description": "The margin rule applied by the CSP at the reseller level.\nThe possible values are: markup, margin, splitmargin and erpminusdiscount, example: markup.",
            "nullable": true,
            "example": "erpminudiscount"
          },
          "resellerPriceMargin": {
            "type": "number",
            "description": "The value applied to this price margin.\nShould not be below 0 or above 999. For the margin rule it should not be above 99. \nFor the erpminusdiscount rule it should not be above 100. For the splitmargin rule it should not be above 100, example: 5.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "customerPriceMarginRule": {
            "type": "string",
            "description": "The margin rule and value applied at the customer level.\nIf there is a price margin applied at the offer category, then that is the one chosen.\nHowever, if the subscription price margin is set, then it overrides this one.",
            "nullable": true,
            "example": "erpminudiscount"
          },
          "customerPriceMargin": {
            "type": "number",
            "description": "The margin value applied at the customer level.\nIf there is a price margin applied at the offer category, then that is the one chosen.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "subscriptionPriceMarginRule": {
            "type": "string",
            "description": "The margin rule applied at the subscription level (can be null).\nThis margin overrides the customer's price margin, if it is set.\nWe still show both the customer and subscription price margin.",
            "nullable": true,
            "example": ""
          },
          "subscriptionPriceMargin": {
            "type": "number",
            "description": "The margin value applied at the subscription level (can be null).\nThis margin overrides the customer's price margin, if it is set.\nWe still show both the customer and subscription price margin.",
            "format": "double",
            "nullable": true
          },
          "subscriptionPONumber": {
            "type": "string",
            "description": "The purchase order number of the subscription associated with this charge.",
            "nullable": true,
            "example": "8543943821"
          }
        },
        "additionalProperties": false,
        "description": "A model that represents a single charge of a daily rated usage invoice.\nIn the case of the Microsoft provider each line item represents an **Azure Pay-As-You-Go** charge."
      },
      "InvoiceDailyRatedUsageLineItemViewModelSeekBasedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDailyRatedUsageLineItemViewModel"
            },
            "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."
      },
      "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."
      },
      "InvoiceLicenseLineItemResellerViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id that uniquely identifies a license invoice line item.",
            "format": "uuid",
            "example": "7828D90D-2AC6-4F20-A95B-EE850BCD32A0"
          },
          "customerProviderId": {
            "type": "string",
            "description": "The id of customer on the provider's side associated with the charge.",
            "nullable": true,
            "example": "CB0A371A-046A-46A9-A299-96BD755E67A8"
          },
          "customerId": {
            "type": "string",
            "description": "The id of the customer associated with the charge.\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"
          },
          "customerInternalId": {
            "type": "string",
            "description": "The internal id of the customer associated with the charge.",
            "nullable": true,
            "example": "CustomerTest"
          },
          "orderId": {
            "type": "string",
            "description": "The id that identifies the order associated with the charge.",
            "nullable": true,
            "example": "569423888785251957"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated with the charge.\nCan be null, for example when the CSP removed the relationship with the customer on the provider side\nand the subscription wasn't in our system when that happened.",
            "format": "uuid",
            "nullable": true,
            "example": "03DE5ECE-EC93-42A9-8F15-9A770AC1F832"
          },
          "subscriptionName": {
            "type": "string",
            "description": "The name of the subscription associated with the charge.",
            "nullable": true,
            "example": "Microsoft 365 Business Standard"
          },
          "subscriptionDescription": {
            "type": "string",
            "description": "The description of the subscription associated with the charge.",
            "nullable": true,
            "example": "Microsoft 365 Business Standard"
          },
          "subscriptionInternalId": {
            "type": "string",
            "description": "The internal id of the subscription associated with the charge.",
            "nullable": true,
            "example": "SubscriptionTest"
          },
          "offerId": {
            "type": "string",
            "description": "The id of the offer in CloudCockpit, associated with the charge.",
            "format": "uuid",
            "nullable": true,
            "example": "A035AB3C-12E1-497B-A7F2-F7A7E31369E5"
          },
          "offerProviderId": {
            "type": "string",
            "description": "The id on the provider's side that identifies the \noffer associated with the charge.",
            "nullable": true,
            "example": "B4D4B7F4-4089-43B6-9C44-DE97B760FB11"
          },
          "offerName": {
            "type": "string",
            "description": "The name of the offer associated with the charge.",
            "nullable": true,
            "example": "Visio Plan 2"
          },
          "subscriptionStartDate": {
            "type": "string",
            "description": "The start date of billing for the subscription.\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"
          },
          "unitPriceForReseller": {
            "type": "number",
            "description": "The price per single quantity that the reseller pays.",
            "format": "double",
            "nullable": true,
            "example": 12.27
          },
          "unitPriceForCustomer": {
            "type": "number",
            "description": "The price per single quantity that the customer pays.",
            "format": "double",
            "nullable": true,
            "example": 13.11
          },
          "quantity": {
            "type": "number",
            "description": "The billed quantity of the subscription associated with the charge.",
            "format": "double",
            "example": 2
          },
          "amountForReseller": {
            "type": "number",
            "description": "The amount for reseller without taxes applied but including discounts.",
            "format": "double",
            "nullable": true,
            "example": -7.45
          },
          "amountForCustomer": {
            "type": "number",
            "description": "The amount for customer without taxes applied but including discounts.",
            "format": "double",
            "nullable": true,
            "example": -7.45
          },
          "totalOtherDiscountForReseller": {
            "type": "number",
            "description": "The discount the reseller receives for the subscription\non this charge.",
            "format": "double",
            "nullable": true,
            "example": 1.31
          },
          "totalOtherDiscountForCustomer": {
            "type": "number",
            "description": "The discount the customer receives for the subscription\non this charge.",
            "format": "double",
            "nullable": true,
            "example": 1.1
          },
          "subtotalForReseller": {
            "type": "number",
            "description": "The cost the reseller pays for the subscription\non this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 49.08
          },
          "subtotalForCustomer": {
            "type": "number",
            "description": "The cost the customer pays for the subscription\non this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 50.12
          },
          "totalForReseller": {
            "type": "number",
            "description": "The cost the reseller pays for the subscription\non this charge after taxes.",
            "format": "double",
            "nullable": true,
            "example": 55.31
          },
          "totalForCustomer": {
            "type": "number",
            "description": "The cost the customer pays for the subscription\non this charge after taxes.",
            "format": "double",
            "nullable": true,
            "example": 57.31
          },
          "taxForReseller": {
            "type": "number",
            "description": "The taxes the resellers pays for the subscription on this charge.",
            "format": "double",
            "nullable": true,
            "example": 6.23
          },
          "taxForCustomer": {
            "type": "number",
            "description": "The taxes the customer pays for the subscription on this charge.",
            "format": "double",
            "nullable": true,
            "example": 7.25
          },
          "currency": {
            "type": "string",
            "description": "The currency associated with the prices.",
            "nullable": true,
            "example": "EUR"
          },
          "billingCycleType": {
            "type": "string",
            "description": "The billing cycle of the subscription associated with the charge.",
            "nullable": true,
            "example": "Monthly"
          },
          "customerPriceMargin": {
            "type": "number",
            "description": "The customer price margin according to the CustomerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "customerPriceMarginRule": {
            "type": "string",
            "description": "The customer price margin rule.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "subscriptionPriceMargin": {
            "type": "number",
            "description": "The subscription price margin according to the SubscriptionPriceMargin.",
            "format": "double",
            "nullable": true
          },
          "subscriptionPriceMarginRule": {
            "type": "string",
            "description": "The subscription price margin rule.",
            "nullable": true,
            "example": "0.00"
          },
          "providerData": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "A dictionary that maps from strings to strings that contains specific provider invoice data.\n\n\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\".\n\n",
            "nullable": true,
            "example": {
              "DomainName": "test@pte.onmicrosoft.com"
            }
          },
          "subscriptionProviderId": {
            "type": "string",
            "description": "The id of the subscription associated with the charge on the provider's side.",
            "nullable": true,
            "example": "FA2A91FD-7286-4DCD-9718-20048CCA832A"
          },
          "subscriptionPONumber": {
            "type": "string",
            "description": "The purchase order number of the subscription associated with the charge.",
            "nullable": true,
            "example": "8543943821"
          }
        },
        "additionalProperties": false,
        "description": "A model that represents a single charge of a license invoice.\nIn the case of the Microsoft provider each line item represents an **License legacy** charge."
      },
      "InvoiceLicenseLineItemResellerViewModelSeekBasedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceLicenseLineItemResellerViewModel"
            },
            "description": "The items in this particular seek operation.",
            "nullable": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.\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."
      },
      "InvoiceLicenseLineItemViewModel": {
        "type": "object",
        "properties": {
          "resellerId": {
            "type": "string",
            "description": "The id of the reseller associated to this charge.\nCan be null, for example when the customer must pay directly to the CSP.",
            "format": "uuid",
            "nullable": true,
            "example": "B8E08E60-19F7-4F95-AE29-A82D3CD53F84"
          },
          "resellerName": {
            "type": "string",
            "description": "The name of the reseller.",
            "nullable": true,
            "example": "Create IT"
          },
          "resellerInternalId": {
            "type": "string",
            "description": "The internal id of the reseller associated with this charge.",
            "nullable": true,
            "example": "ResellerTest"
          },
          "customerId": {
            "type": "string",
            "description": "The id of the customer associated to this 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"
          },
          "customerInternalId": {
            "type": "string",
            "description": "The internal id of the customer associated with this charge.",
            "nullable": true,
            "example": "CustomerTest"
          },
          "orderId": {
            "type": "string",
            "description": "The id that identifies the order associated to the charge.",
            "nullable": true,
            "example": "569423888785251957"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated to the charge.\nCan be null, for example when the CSP removed the relationship with the customer on the provider side\nand the subscription wasn't in our system when that happened.",
            "format": "uuid",
            "nullable": true,
            "example": "03DE5ECE-EC93-42A9-8F15-9A770AC1F832"
          },
          "subscriptionName": {
            "type": "string",
            "description": "The name of the subscription associated with the charge.",
            "nullable": true,
            "example": "Microsoft 365 Business Standard"
          },
          "subscriptionDescription": {
            "type": "string",
            "description": "The description of the subscription associated with the charge.",
            "nullable": true,
            "example": "Microsoft 365 Business Standard"
          },
          "subscriptionInternalId": {
            "type": "string",
            "description": "The internal id of the subscription associated with this charge.",
            "nullable": true,
            "example": "SubscriptionTest"
          },
          "offerId": {
            "type": "string",
            "description": "The id of the offer in CloudCockpit, associated with the line item",
            "format": "uuid",
            "nullable": true,
            "example": "A035AB3C-12E1-497B-A7F2-F7A7E31369E5"
          },
          "offerProviderId": {
            "type": "string",
            "description": "The id on the provider's side that identifies the \noffer associated to the charge.",
            "nullable": true,
            "example": "B4D4B7F4-4089-43B6-9C44-DE97B760FB11"
          },
          "offerName": {
            "type": "string",
            "description": "The name of the offer associated to the subscription.",
            "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-21 00:00:00"
          },
          "subscriptionEndDate": {
            "type": "string",
            "description": "The end date of the term of the subscription.",
            "format": "date-time",
            "nullable": true,
            "example": "2024-07-20 00:00:00"
          },
          "chargeStartDate": {
            "type": "string",
            "description": "The billing start date for this charge.",
            "format": "date-time",
            "example": "2022-12-21 00:00:00"
          },
          "chargeEndDate": {
            "type": "string",
            "description": "The billing end date for this charge.",
            "format": "date-time",
            "example": "2023-01-20 00: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"
          },
          "unitPrice": {
            "type": "number",
            "description": "Price per seat, as published in the pricelist at the time of purchase.",
            "format": "double",
            "example": -2.98
          },
          "unitPriceForReseller": {
            "type": "number",
            "description": "The unit price for reseller.",
            "format": "double",
            "nullable": true,
            "example": -3.725
          },
          "unitPriceForCustomer": {
            "type": "number",
            "description": "The unit price for customer.",
            "format": "double",
            "nullable": true,
            "example": -3.725
          },
          "quantity": {
            "type": "number",
            "description": "The billed quantity of the subscription associated to the charge.",
            "format": "double",
            "example": 2
          },
          "amount": {
            "type": "number",
            "description": "The amount without taxes applied. It is equal to the Quantity * UnitPrice.",
            "format": "double",
            "example": -5.96
          },
          "amountForReseller": {
            "type": "number",
            "description": "The amount for reseller without taxes applied but including discounts.",
            "format": "double",
            "nullable": true,
            "example": -7.45
          },
          "amountForCustomer": {
            "type": "number",
            "description": "The amount for customer without taxes applied but including discounts.",
            "format": "double",
            "nullable": true,
            "example": -7.45
          },
          "totalOtherDiscount": {
            "type": "number",
            "description": "Amount of discount applied to these charges.",
            "format": "double",
            "example": 0
          },
          "totalOtherDiscountForReseller": {
            "type": "number",
            "description": "Amount of discount applied to these charges for reseller.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "totalOtherDiscountForCustomer": {
            "type": "number",
            "description": "Amount of discount applied to these charges for customer",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "subtotal": {
            "type": "number",
            "description": "The total before taxes, with discounts applied.",
            "format": "double",
            "example": -5.96
          },
          "subtotalForReseller": {
            "type": "number",
            "description": "The total before taxes for reseller, with discounts applied.",
            "format": "double",
            "nullable": true,
            "example": -7.45
          },
          "subtotalForCustomer": {
            "type": "number",
            "description": "The total before taxes for customer, with discounts applied.",
            "format": "double",
            "nullable": true,
            "example": -7.45
          },
          "total": {
            "type": "number",
            "description": "The total after taxes have been applied.",
            "format": "double",
            "example": -7.33
          },
          "totalForReseller": {
            "type": "number",
            "description": "The total after taxes have been applied for the reseller.",
            "format": "double",
            "nullable": true,
            "example": -9.16
          },
          "totalForCustomer": {
            "type": "number",
            "description": "The total after taxes have been applied for the customer.",
            "format": "double",
            "nullable": true,
            "example": -9.16
          },
          "tax": {
            "type": "number",
            "description": "The tax value.",
            "format": "double",
            "example": -1.37
          },
          "taxForReseller": {
            "type": "number",
            "description": "The tax value for reseller.",
            "format": "double",
            "nullable": true,
            "example": -1.71
          },
          "taxForCustomer": {
            "type": "number",
            "description": "The tax value for customer.",
            "format": "double",
            "nullable": true,
            "example": -1.71
          },
          "currency": {
            "type": "string",
            "description": "The currency associated with the prices.",
            "nullable": true,
            "example": "EUR"
          },
          "billingCycleType": {
            "type": "string",
            "description": "The billing cycle of the subscription associated to the charge.",
            "nullable": true,
            "example": "Monthly"
          },
          "resellerPriceMargin": {
            "type": "number",
            "description": "The reseller price margin according to the ResellerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "resellerPriceMarginRule": {
            "type": "string",
            "description": "The reseller price margin rule.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "customerPriceMargin": {
            "type": "number",
            "description": "The customer price margin according to the CustomerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "customerPriceMarginRule": {
            "type": "string",
            "description": "The customer price margin rule.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "subscriptionPriceMargin": {
            "type": "number",
            "description": "The subscription price margin according to the SubscriptionPriceMargin.",
            "format": "double",
            "nullable": true
          },
          "subscriptionPriceMarginRule": {
            "type": "string",
            "description": "The subscription price margin rule.",
            "nullable": true,
            "example": ""
          },
          "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 the possible values are:\n**PartnerId**: The tenant id of the CSP associated with the charge on Microsoft, example: \"3f4b6151-7e2f-411b-984c-fe1c654c1d56\".\n**MpnId**: The mpn id of the CSP associated with the charge, example: \"1234\",\n**ResellerMpnId**: The mpn id of the reseller associated with the charge. If no reseller is associated then this property is not present, example: \"6286\".\n**DomainName**: The domain of the customer associated with the charge, example: \"test@pte.onmicrosoft.com\".\n\n",
            "nullable": true,
            "example": {
              "PartnerId": "3f4b6151-7e2f-411b-984c-fe1c654c1d56",
              "MpnId": 1234,
              "ResellerMpnId": 6286,
              "DomainName": "test@pte.onmicrosoft.com"
            }
          },
          "id": {
            "type": "string",
            "description": "The id that uniquely identifies a license invoice line item.",
            "format": "uuid",
            "example": "7828D90D-2AC6-4F20-A95B-EE850BCD32A0"
          },
          "erpPrice": {
            "type": "number",
            "description": "The ERP for the whole term of the subscription\nassociated to the charge, at the time indicated in SubscriptionStartDate.",
            "format": "double",
            "example": 10.5
          },
          "erpProrated": {
            "type": "number",
            "description": "The actual ERP used on the charge taking in to account\nif the charge is a prorated one.\nThis value can be negative when we are dealing with refunds/credits.",
            "format": "double",
            "nullable": true,
            "example": -3.725
          },
          "customerProviderId": {
            "type": "string",
            "description": "The id of customer on the provider's side associated to this charge.",
            "nullable": true,
            "example": "CB0A371A-046A-46A9-A299-96BD755E67A8"
          },
          "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"
          }
        },
        "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."
      },
      "InvoiceLicenseLineItemViewModelSeekBasedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceLicenseLineItemViewModel"
            },
            "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."
      },
      "InvoiceOneTimeLineItemResellerViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id that uniquely identifies a one time invoice line item.",
            "format": "uuid",
            "example": "7828D90D-2AC6-4F20-A95B-EE850BCD32A0"
          },
          "subscriptionPONumber": {
            "type": "string",
            "description": "The purchase order number of the subscription associated with this charge.",
            "nullable": true,
            "example": "8543943821"
          },
          "customerId": {
            "type": "string",
            "description": "The id of the customer associated to this charge.\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"
          },
          "customerInternalId": {
            "type": "string",
            "description": "The internal id of the customer associated with this charge.",
            "nullable": true,
            "example": "CustomerTest"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated to the charge.\nCan be null.",
            "format": "uuid",
            "nullable": true,
            "example": "03DE5ECE-EC93-42A9-8F15-9A770AC1F832"
          },
          "subscriptionName": {
            "type": "string",
            "description": "The name of the subscription associated with the charge.",
            "nullable": true,
            "example": "My friendly name"
          },
          "subscriptionInternalId": {
            "type": "string",
            "description": "The internal id of the subscription associated with this charge.",
            "nullable": true,
            "example": "SubscriptionTest"
          },
          "offerProviderId": {
            "type": "string",
            "description": "The offer id on the provider's side that identifies the \nsubscription associated to the charge.",
            "nullable": true,
            "example": "DZH318Z0BQJ7:01DJ"
          },
          "offerName": {
            "type": "string",
            "description": "The name of the offer associated to the subscription.",
            "nullable": true,
            "example": "Azure Database for MySQL Single Server General Purpose - Compute Gen5, vCore, FR Central, 3 Years"
          },
          "subscriptionProviderId": {
            "type": "string",
            "description": "The id of the subscription associated to this charge on the provider's side.",
            "nullable": true,
            "example": "FA2A91FD-7286-4DCD-9718-20048CCA832A"
          },
          "orderId": {
            "type": "string",
            "description": "The id that identifies the order associated to the charge.",
            "nullable": true,
            "example": "bhhVi9rL4_vCEmrrPdc"
          },
          "orderDate": {
            "type": "string",
            "description": "The date the order was placed.",
            "format": "date-time",
            "nullable": true,
            "example": "2023-05-03T21:25:51.6916741"
          },
          "customerCountry": {
            "type": "string",
            "description": "The country in which the customer is located.",
            "nullable": true,
            "example": "IE"
          },
          "currency": {
            "type": "string",
            "description": "The currency associated with the line item.",
            "nullable": true,
            "example": "EUR"
          },
          "chargeType": {
            "type": "string",
            "description": "The type of charge on this line item.\nPossible values for the Microsoft provider include:\n- new: When you buy a new subscription.\n- renew: When you renew your subscription.\n- cycleCharge: Regular recurring charges for your subscription.\n- addQuantity: Refunds and charges when you add seats.\n- removeQuantity: Refunds and charges when you remove seats.\n- moveQuantity: When you upgrade to an existing subscription.\n- cancelImmediate: When you cancel your subscription.\n- convert: \tWhen you change from a free trial to a paid subscription or upgrade to a new subscription.\n- changeBillingPlan: Changing from monthly to yearly billing or vice versa.\n- customerCredit: Credits for Azure, SLA, among others.\n- extendTerm: When you are given a longer trial period.",
            "nullable": true,
            "example": "cycleCharge"
          },
          "termAndBillingCycle": {
            "type": "string",
            "description": "The term and billing cycle associated with this purchase.",
            "nullable": true,
            "example": "10K Read Operations"
          },
          "chargeStartDate": {
            "type": "string",
            "description": "The billing start date for this charge.",
            "format": "date-time",
            "example": "2023-04-01T00:00:00"
          },
          "chargeEndDate": {
            "type": "string",
            "description": "The billing end date for this charge.",
            "format": "date-time",
            "example": "2023-04-30T23:59:59"
          },
          "unitType": {
            "type": "string",
            "description": "The type of the unit.",
            "nullable": true,
            "example": "1 Hour"
          },
          "unitPriceForReseller": {
            "type": "number",
            "description": "The unit price for reseller.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "unitPriceForCustomer": {
            "type": "number",
            "description": "The unit price for customer.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "quantity": {
            "type": "number",
            "description": "The quantity of the subscription associated to the charge.",
            "format": "double",
            "example": 4
          },
          "subtotalForReseller": {
            "type": "number",
            "description": "The total before taxes for the reseller.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "subtotalForCustomer": {
            "type": "number",
            "description": "The total before taxes for the customer.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "taxForReseller": {
            "type": "number",
            "description": "The tax value for the reseller.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "taxForCustomer": {
            "type": "number",
            "description": "The tax value for the customer.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "totalForReseller": {
            "type": "number",
            "description": "The total for reseller after taxes.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "totalForCustomer": {
            "type": "number",
            "description": "The total for customer after taxes.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "customerProviderId": {
            "type": "string",
            "description": "The id of customer on the provider's side associated to this charge.",
            "nullable": true,
            "example": "CB0A371A-046A-46A9-A299-96BD755E67A8"
          },
          "pricingCurrency": {
            "type": "string",
            "description": "The currency of the UnitPriceForReseller and UnitPriceForCustomer.\nThis currency may differ from the invoice billing currency.",
            "nullable": true,
            "example": "USD"
          },
          "billingFrequency": {
            "type": "string",
            "description": "The billing frequency of the subscription associated to the charge.\nCan also be empty.",
            "nullable": true,
            "example": "Monthly"
          },
          "billableQuantity": {
            "type": "number",
            "description": "The amount of units billed.",
            "format": "double",
            "example": 1
          },
          "customerPriceMargin": {
            "type": "number",
            "description": "The customer price margin according to CustomerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "customerPriceMarginRule": {
            "type": "string",
            "description": "The customer price margin rule. The possible values are: markup, margin, splitmargin and erpminusdiscount.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "subscriptionPriceMargin": {
            "type": "number",
            "description": "The subscription price margin according to SubscriptionPriceMarginRule.",
            "format": "double",
            "nullable": true
          },
          "subscriptionPriceMarginRule": {
            "type": "string",
            "description": "The subscription price margin rule.",
            "nullable": true,
            "example": ""
          },
          "providerData": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "A dictionary that maps from strings to strings that contains specific provider invoice data.\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"
            }
          },
          "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"
          },
          "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"
          }
        },
        "additionalProperties": false,
        "description": "A model that represents a single charge of a one time invoice specific for Resellers.\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."
      },
      "InvoiceOneTimeLineItemResellerViewModelSeekBasedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceOneTimeLineItemResellerViewModel"
            },
            "description": "The items in this particular seek operation.",
            "nullable": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.\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."
      },
      "InvoiceOneTimeLineItemViewModel": {
        "type": "object",
        "properties": {
          "resellerId": {
            "type": "string",
            "description": "The id of the reseller associated to this charge.\nCan be null.",
            "format": "uuid",
            "nullable": true,
            "example": "B8E08E60-19F7-4F95-AE29-A82D3CD53F84"
          },
          "resellerName": {
            "type": "string",
            "description": "The name of the reseller.",
            "nullable": true,
            "example": "Reseller test"
          },
          "resellerInternalId": {
            "type": "string",
            "description": "The internal id of the reseller associated with this charge.",
            "nullable": true,
            "example": "ResellerTest"
          },
          "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 name of the customer.",
            "nullable": true,
            "example": "Customer name"
          },
          "customerInternalId": {
            "type": "string",
            "description": "The internal id of the customer associated with this charge.",
            "nullable": true,
            "example": "CustomerTest"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated to the charge.\nCan be null.",
            "format": "uuid",
            "nullable": true,
            "example": "03DE5ECE-EC93-42A9-8F15-9A770AC1F832"
          },
          "subscriptionName": {
            "type": "string",
            "description": "The name of the subscription.",
            "nullable": true,
            "example": "Microsoft 365"
          },
          "subscriptionInternalId": {
            "type": "string",
            "description": "The internal id of the subscription associated with this charge.",
            "nullable": true,
            "example": "SubscriptionTest"
          },
          "offerProviderId": {
            "type": "string",
            "description": "The offer id on the provider's side that identifies the \nsubscription associated to the charge.",
            "nullable": true,
            "example": "DZH318Z0BQJ7:01DJ"
          },
          "offerName": {
            "type": "string",
            "description": "The name of the offer associated to the subscription.",
            "nullable": true,
            "example": "Azure Database for MySQL Single Server General Purpose - Compute Gen5, vCore, FR Central, 3 Years"
          },
          "subscriptionPONumber": {
            "type": "string",
            "description": "The purchase order number of the subscription associated with this charge.",
            "nullable": true,
            "example": "8543943821"
          },
          "orderId": {
            "type": "string",
            "description": "The id that identifies the order associated to the charge.",
            "nullable": true,
            "example": "bhhVi9rL4_vCEmrrPdc"
          },
          "orderDate": {
            "type": "string",
            "description": "The date the order was placed.",
            "format": "date-time",
            "nullable": true,
            "example": "2023-04-30T23:59:59"
          },
          "customerCountry": {
            "type": "string",
            "description": "The country in which the customer is located.",
            "nullable": true,
            "example": "IE"
          },
          "currency": {
            "type": "string",
            "description": "The currency associated with the line item.",
            "nullable": true,
            "example": "EUR"
          },
          "chargeType": {
            "type": "string",
            "description": "The type of charge on this line item.\nPossible values for the Microsoft provider include:\n- new: When you buy a new subscription.\n- renew: When you renew your subscription.\n- cycleCharge: Regular recurring charges for your subscription.\n- addQuantity: Refunds and charges when you add seats.\n- removeQuantity: Refunds and charges when you remove seats.\n- moveQuantity: When you upgrade to an existing subscription.\n- cancelImmediate: When you cancel your subscription.\n- convert: \tWhen you change from a free trial to a paid subscription or upgrade to a new subscription.\n- changeBillingPlan: Changing from monthly to yearly billing or vice versa.\n- customerCredit: Credits for Azure, SLA, among others.\n- extendTerm: When you are given a longer trial period.",
            "nullable": true,
            "example": "cycleCharge"
          },
          "termAndBillingCycle": {
            "type": "string",
            "description": "The term and billing cycle associated with this purchase.",
            "nullable": true,
            "example": "10K Read Operations"
          },
          "chargeStartDate": {
            "type": "string",
            "description": "The billing start date for this charge.",
            "format": "date-time",
            "example": "2023-04-01T00:00:00"
          },
          "chargeEndDate": {
            "type": "string",
            "description": "The billing end date for this charge.",
            "format": "date-time",
            "example": "2023-04-30T23:59:59"
          },
          "unitType": {
            "type": "string",
            "description": "The type of the unit.",
            "nullable": true,
            "example": "1 Hour"
          },
          "unitPrice": {
            "type": "number",
            "description": "The price as published in the pricelist at the time of purchase.",
            "format": "double",
            "example": 2.72
          },
          "unitPriceForReseller": {
            "type": "number",
            "description": "The unit price for reseller.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "unitPriceForCustomer": {
            "type": "number",
            "description": "The unit price for customer.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "quantity": {
            "type": "number",
            "description": "The number of units purchased.",
            "format": "double",
            "example": 1
          },
          "subtotal": {
            "type": "number",
            "description": "The total before taxes.",
            "format": "double",
            "example": 2.72
          },
          "subtotalForReseller": {
            "type": "number",
            "description": "The total before taxes for the reseller.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "subtotalForCustomer": {
            "type": "number",
            "description": "The total before taxes for the customer.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "tax": {
            "type": "number",
            "description": "The tax value.",
            "format": "double",
            "example": 0
          },
          "taxForReseller": {
            "type": "number",
            "description": "The tax value for the reseller.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "taxForCustomer": {
            "type": "number",
            "description": "The tax value for the customer.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "total": {
            "type": "number",
            "description": "The total after taxes.",
            "format": "double",
            "example": 2.72
          },
          "totalForReseller": {
            "type": "number",
            "description": "The total for reseller after taxes.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "totalForCustomer": {
            "type": "number",
            "description": "The total for customer after taxes.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "id": {
            "type": "string",
            "description": "The id that uniquely identifies a one time invoice line item.",
            "format": "uuid",
            "example": "7828D90D-2AC6-4F20-A95B-EE850BCD32A0"
          },
          "resellerPriceMargin": {
            "type": "number",
            "description": "The reseller price margin according to ResellerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "pricingCurrency": {
            "type": "string",
            "description": "The currency of the UnitPrice, UnitPriceForReseller and UnitPriceForCustomer.\nThis currency may differ from the invoice billing currency.",
            "nullable": true,
            "example": "USD"
          },
          "billingFrequency": {
            "type": "string",
            "description": "The billing cycle of the subscription associated to the charge.\nCan also be empty.",
            "nullable": true,
            "example": "Monthly"
          },
          "billableQuantity": {
            "type": "number",
            "description": "The amount of units billed.",
            "format": "double",
            "example": 1
          },
          "resellerPriceMarginRule": {
            "type": "string",
            "description": "The reseller price margin rule.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "customerPriceMargin": {
            "type": "number",
            "description": "The customer price margin according to CustomerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "customerPriceMarginRule": {
            "type": "string",
            "description": "The customer price margin rule.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "subscriptionPriceMargin": {
            "type": "number",
            "description": "The subscription price margin according to SubscriptionPriceMarginRule.",
            "format": "double",
            "nullable": true
          },
          "subscriptionPriceMarginRule": {
            "type": "string",
            "description": "The subscription price margin rule.",
            "nullable": true,
            "example": ""
          },
          "providerData": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "A dictionary that maps from strings to strings that contains specific provider invoice data.\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**PartnerId**: The tenant id of the CSP in Microsoft.\n**CustomerDomainName**: The domain of the customer.\n**InvoiceNumber**: The id of the invoice in Microsoft.\n**MpnId**: The mpn id of the CSP.\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**ReferenceId**: The reference id of the line item.\n**ProductQualifiers**: Any qualifiers of the sku, such as indicating if it is a trial.\n\n\nThe following properties only appear in some types of charges, see below:\n**CustomerCountry**: The country of the customer associated to the charge in two letter ISO format, example: \"PT\".\n**ResellerMpnId**: The mpn id of the reseller associated to the charge. If no reseller is associated then this property is not present, example: \"6286\".\n**PriceAdjustmentDescription**: A list of strings representing reasons for list price adjustments, for example when Partner Earned Credit is granted, example: \"[\"Price for given term\"]\". If no adjustments were made then this property is not present.\n**PCToBCExchangeRate**: A decimal value used to convert the ListPrice from the pricing currency to the invoice currency, example: \"0.9510675734\".\n**PCToBCExchangeRateDate**: The date of the above exchange rate.\n**CreditReasonCode**: The reason for azure credits, example: \"Azure Credit\".\n**EffectiveUnitPrice**: The actual price billed per single quantity after the adjustments described in PriceAdjustmentDescription, example: \"30.95\".\n**PromotionId**: The id of the promotion that was used to bill the NCE license charge example: \"39NFJQT1PGVJ:004S:39NFJQT1Q5Z1\". If no promotion was applied then this property is not present.\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**Term**: The term applied to NCE license charges. Possible values include: \"onemonth\", \"oneyear\", \"threeyears\".\n\n\nFor **Azure plan** the properties are: ResellerMpnId, PriceAdjustmentDescription, PCToBCExchangeRate, CreditReasonCode, EffectiveUnitPrice.\nFor **Azure savings plan** the properties are: ResellerMpnId, PriceAdjustmentDescription, PCToBCExchangeRate, EffectiveUnitPrice, ReservationOrderId.\nFor **Azure reservation** the properties are: CustomerCountry, ResellerMpnId, PriceAdjustmentDescription, PCToBCExchangeRate, EffectiveUnitPrice, CreditReasonCode, ReservationOrderId.\nFor **NCE license** the properties are: CustomerCountry, ResellerMpnId, PriceAdjustmentDescription, PCToBCExchangeRate, EffectiveUnitPrice, PromotionId, Term.\nFor **software/perpetual software** the properties are: CustomerCountry, ResellerMpnId, PriceAdjustmentDescription, PCToBCExchangeRate, EffectiveUnitPrice.",
            "nullable": true,
            "example": {
              "CustomerCountry": "IE",
              "ResellerMpnId": "6286",
              "PCToBCExchangeRate": "1.0",
              "ReservationOrderId": "A202A58B-7041-46EE-D5BC-2D0F6FD22106",
              "EffectiveUnitPrice": "30.95"
            }
          },
          "erpPrice": {
            "type": "number",
            "description": "The ERP for the whole term of the subscription\nassociated to the charge, at the time indicated in SubscriptionStartDate.",
            "format": "double",
            "example": 2.72
          },
          "erpProrated": {
            "type": "number",
            "description": "The actual ERP used on the charge taking in to account\nif the charge is a prorated one.\nThis value can be negative when we are dealing with refunds/credits.",
            "format": "double",
            "nullable": true,
            "example": 2.72
          },
          "customerProviderId": {
            "type": "string",
            "description": "The id of customer on the provider's side associated to this charge.",
            "nullable": true,
            "example": "CB0A371A-046A-46A9-A299-96BD755E67A8"
          },
          "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"
          },
          "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"
          },
          "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"
          }
        },
        "additionalProperties": false,
        "description": "A model that represents a single charge of a one time invoice.\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."
      },
      "InvoiceOneTimeLineItemViewModelSeekBasedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceOneTimeLineItemViewModel"
            },
            "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."
      },
      "InvoiceSettings": {
        "type": "object",
        "properties": {
          "markupLimit": {
            "type": "boolean",
            "description": "When set to true, the final price of a reconciliation charge (even with margin applied) will not exceed the ERP price of the charge."
          },
          "discountLimit": {
            "type": "boolean",
            "description": "When set to true, the final price of a reconciliation charge (even with a margin applied) will not be lower than the list price of the charge."
          },
          "rIsMarginOverERP": {
            "type": "boolean",
            "description": "When set to true, the final price of a reconciliation charge for an RI created or renewed after the 1st of January of 2023 can surpass the ERP price."
          },
          "providersInvoiceSettings": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "A dictionary whose key is the id of the provider and whose value is the provider specific invoice settings.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "This model contains the settings that will be used for reconciliation purposes.\nThis model is being used for the settings applied at a tenant level and also\nto map between the settings applied at a specific reseller level.\nIf a reseller has these settings configured, then those override the tenant level settings."
      },
      "InvoiceStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The possible values that an Invoice can go through: Processing, Completed, Failed."
      },
      "InvoiceUsageLineItemResellerViewModel": {
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "description": "The id of the customer associated to this charge.\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"
          },
          "customerCompanyName": {
            "type": "string",
            "description": "The company name of the customer.",
            "nullable": true,
            "example": "Customer test"
          },
          "domainName": {
            "type": "string",
            "description": "The domain of the customer associated with the charge.",
            "nullable": true,
            "example": "test@pte.onmicrosoft.com"
          },
          "customerInternalId": {
            "type": "string",
            "description": "The internal id of the customer associated with this charge.",
            "nullable": true,
            "example": "CustomerTest"
          },
          "orderId": {
            "type": "string",
            "description": "The id that identifies the order associated with the charge.",
            "nullable": true,
            "example": "168579460714324057"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated with the charge.\nCan be null, for example when the CSP removed the relationship with the customer on the provider side\nand the subscription wasn't in our system when that happened.",
            "format": "uuid",
            "nullable": true,
            "example": "03DE5ECE-EC93-42A9-8F15-9A770AC1F832"
          },
          "subscriptionName": {
            "type": "string",
            "description": "The name of the subscription associated with the charge.",
            "nullable": true,
            "example": "Azure subscription"
          },
          "subscriptionDescription": {
            "type": "string",
            "description": "The description of the subscription associated with the charge.",
            "nullable": true,
            "example": "Azure"
          },
          "subscriptionInternalId": {
            "type": "string",
            "description": "The internal id of the subscription associated with this charge.",
            "nullable": true,
            "example": "SubscriptionTest"
          },
          "offerId": {
            "type": "string",
            "description": "The id of the offer associated with the charge in CloudCockpit.",
            "format": "uuid",
            "nullable": true,
            "example": "607b94ab-27d3-4ce7-a0af-91db5c930ffc"
          },
          "offerProviderId": {
            "type": "string",
            "description": "The offer id on the provider's side that identifies the \nsubscription associated with the charge.",
            "nullable": true,
            "example": "9DBADD95-5F52-454F-9002-C666A8AFF87D"
          },
          "offerName": {
            "type": "string",
            "description": "The name of the offer associated with the subscription.",
            "nullable": true,
            "example": "Hot GRS Write Operations - Tiered Block Blob"
          },
          "chargeStartDate": {
            "type": "string",
            "description": "The billing start date for this charge.",
            "format": "date-time",
            "example": "2023-04-01T00:00:00"
          },
          "chargeEndDate": {
            "type": "string",
            "description": "The billing end date for this charge.",
            "format": "date-time",
            "example": "2023-04-30T23:59:59"
          },
          "chargeType": {
            "type": "string",
            "description": "The type of charge on this line item.\nPossible values include:\n- Assess usage fee for current cycle: Access usage fee for the current billing period.\n- Assess usage fee when cancel: Access usage fee upon cancellation for unpaid usage during the current billing period.",
            "nullable": true,
            "example": "Assess usage fee for current cycle"
          },
          "serviceName": {
            "type": "string",
            "description": "The name of the service associated with the line item.",
            "nullable": true,
            "example": "Azure Data Factory v2"
          },
          "serviceType": {
            "type": "string",
            "description": "The type of the service associated with the line item.",
            "nullable": true,
            "example": ""
          },
          "resourceGuid": {
            "type": "string",
            "description": "The identifier of the resource associated with the charge.",
            "nullable": true,
            "example": "9d6f5dbf-90a1-46bc-85b7-e9c3f92bae35"
          },
          "resourceName": {
            "type": "string",
            "description": "The name of the resource associated with the charge.",
            "nullable": true,
            "example": "Cloud Data Movement"
          },
          "region": {
            "type": "string",
            "description": "The region associated with the charge.",
            "nullable": true,
            "example": "IE"
          },
          "sku": {
            "type": "string",
            "description": "The sku associated with the charge.",
            "nullable": true,
            "example": "7UD-00001"
          },
          "detailLineItemId": {
            "type": "integer",
            "description": "The id of the line item from the provider side.",
            "format": "int32",
            "example": 1
          },
          "consumedQuantity": {
            "type": "number",
            "description": "The consumed quantity of the resource.",
            "format": "double",
            "example": 146.6
          },
          "overageQuantity": {
            "type": "number",
            "description": "The overage quantity of the line item.",
            "format": "double",
            "example": 146.6
          },
          "includedQuantity": {
            "type": "number",
            "description": "The quantity that is included free of charge on this line item.",
            "format": "double",
            "example": 0
          },
          "currency": {
            "type": "string",
            "description": "The currency of the line item.",
            "nullable": true,
            "example": "EUR"
          },
          "unit": {
            "type": "string",
            "description": "The unit of charge associated with the line item, for example GB or Months.",
            "nullable": true,
            "example": "10K"
          },
          "listPriceForReseller": {
            "type": "number",
            "description": "The price of each unit for the reseller.",
            "format": "double",
            "nullable": true,
            "example": 0.18473412
          },
          "listPriceForCustomer": {
            "type": "number",
            "description": "The price of each unit for customer (with reseller and customer margin).",
            "format": "double",
            "nullable": true,
            "example": 0.21082354
          },
          "subtotalForReseller": {
            "type": "number",
            "description": "The cost the reseller pays for the subscription on this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 27.082022
          },
          "subtotalForCustomer": {
            "type": "number",
            "description": "The price the customer pays for the subscription on this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 30.906729
          },
          "taxesForReseller": {
            "type": "number",
            "description": "The taxes the resellers pays for the subscription on this charge.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "taxesForCustomer": {
            "type": "number",
            "description": "The taxes the customer pays for the subscription on this charge.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "totalForReseller": {
            "type": "number",
            "description": "The cost the reseller pays for the subscription on this charge after taxes.",
            "format": "double",
            "nullable": true,
            "example": 27.082022
          },
          "totalForCustomer": {
            "type": "number",
            "description": "The price the customer pays for the subscription on this charge after taxes.",
            "format": "double",
            "nullable": true,
            "example": 30.906729
          },
          "customerProviderId": {
            "type": "string",
            "description": "The id of customer on the provider's side associated with the charge.",
            "nullable": true,
            "example": "CB0A371A-046A-46A9-A299-96BD755E67A8"
          },
          "subscriptionProviderId": {
            "type": "string",
            "description": "The id of the subscription associated to this charge on the provider's side.",
            "nullable": true,
            "example": "FA2A91FD-7286-4DCD-9718-20048CCA832A"
          },
          "subscriptionPONumber": {
            "type": "string",
            "description": "The purchase order number of the subscription associated with this charge.",
            "nullable": true,
            "example": "8543943821"
          },
          "id": {
            "type": "string",
            "description": "The id that uniquely identifies a usage invoice line item.",
            "format": "uuid",
            "example": "7828D90D-2AC6-4F20-A95B-EE850BCD32A0"
          },
          "billingCycleType": {
            "type": "string",
            "description": "The billing cycle of the subscription associated with charge.",
            "nullable": true,
            "example": "Monthly"
          },
          "customerPriceMargin": {
            "type": "number",
            "description": "The customer price margin according to the CustomerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "customerPriceMarginRule": {
            "type": "string",
            "description": "The customer price margin rule. The possible values are: markup, margin, splitmargin and erpminusdiscount.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "subscriptionPriceMargin": {
            "type": "number",
            "description": "The subscription price margin according to the SubscriptionPriceMarginRule.",
            "format": "double",
            "nullable": true
          },
          "subscriptionPriceMarginRule": {
            "type": "string",
            "description": "The subscription price margin rule. The possible values are: markup, margin, splitmargin and erpminusdiscount.",
            "nullable": true,
            "example": ""
          },
          "providerData": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "A dictionary that maps from strings to strings that contains specific provider invoice data.\n\n\nIf this line item is associated to a Microsoft invoice then the possible values are:\n**ServiceName**: The name of the service associated with the charge. For example: \"Storage\".\n\n",
            "nullable": true,
            "example": {
              "ServiceName": "Storage"
            }
          }
        },
        "additionalProperties": false,
        "description": "A model that represents a single charge of a usage invoice.\nIn the case of the Microsoft provider each line item represents an **Azure legacy** charge."
      },
      "InvoiceUsageLineItemResellerViewModelSeekBasedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceUsageLineItemResellerViewModel"
            },
            "description": "The items in this particular seek operation.",
            "nullable": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.\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."
      },
      "InvoiceUsageLineItemViewModel": {
        "type": "object",
        "properties": {
          "mpnId": {
            "type": "integer",
            "description": "The mpn id of the CSP.",
            "format": "int32",
            "example": 123
          },
          "resellerMpnId": {
            "type": "integer",
            "description": "The mpn id of the reseller associated with the line item, if applicable.\nOn tier 1 scenarios, this will be null.",
            "format": "int32",
            "nullable": true,
            "example": 456
          },
          "resellerId": {
            "type": "string",
            "description": "The id of the reseller associated with this charge.\nCan be null, for example when the customer must pay directly to the CSP.",
            "format": "uuid",
            "nullable": true,
            "example": "B8E08E60-19F7-4F95-AE29-A82D3CD53F84"
          },
          "resellerName": {
            "type": "string",
            "description": "The name of the reseller associated with the charge.",
            "nullable": true,
            "example": "Reseller Test"
          },
          "resellerInternalId": {
            "type": "string",
            "description": "The internal id of the reseller associated with this charge.",
            "nullable": true,
            "example": "ResellerTest"
          },
          "customerId": {
            "type": "string",
            "description": "The id of the customer associated to this 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"
          },
          "customerCompanyName": {
            "type": "string",
            "description": "The company name of the customer.",
            "nullable": true,
            "example": "Customer test"
          },
          "domainName": {
            "type": "string",
            "description": "The domain of the customer associated with the charge.",
            "nullable": true,
            "example": "test@pte.onmicrosoft.com"
          },
          "customerInternalId": {
            "type": "string",
            "description": "The internal id of the customer associated with this charge.",
            "nullable": true,
            "example": "CustomerTest"
          },
          "orderId": {
            "type": "string",
            "description": "The id that identifies the order associated with the charge.",
            "nullable": true,
            "example": "168579460714324057"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The id of the subscription associated with the charge.\nCan be null, for example when the CSP removed the relationship with the customer on the provider side\nand the subscription wasn't in our system when that happened.",
            "format": "uuid",
            "nullable": true,
            "example": "03DE5ECE-EC93-42A9-8F15-9A770AC1F832"
          },
          "subscriptionName": {
            "type": "string",
            "description": "The name of the subscription associated with the charge.",
            "nullable": true,
            "example": "Azure subscription"
          },
          "subscriptionDescription": {
            "type": "string",
            "description": "The description of the subscription associated with the charge.",
            "nullable": true,
            "example": "Azure"
          },
          "subscriptionInternalId": {
            "type": "string",
            "description": "The internal id of the subscription associated with this charge.",
            "nullable": true,
            "example": "SubscriptionTest"
          },
          "offerId": {
            "type": "string",
            "description": "The id of the offer associated with the charge in CloudCockpit.",
            "format": "uuid",
            "nullable": true,
            "example": ""
          },
          "providerOfferId": {
            "type": "string",
            "description": "The offer id on the provider's side that identifies the \nsubscription associated with the charge.",
            "nullable": true,
            "example": "9DBADD95-5F52-454F-9002-C666A8AFF87D"
          },
          "offerName": {
            "type": "string",
            "description": "The name of the offer associated with the subscription.",
            "nullable": true,
            "example": "Hot GRS Write Operations - Tiered Block Blob"
          },
          "chargeStartDate": {
            "type": "string",
            "description": "The billing start date for this charge.",
            "format": "date-time",
            "example": "2023-04-01T00:00:00"
          },
          "chargeEndDate": {
            "type": "string",
            "description": "The billing end date for this charge.",
            "format": "date-time",
            "example": "2023-04-30T23:59:59"
          },
          "chargeType": {
            "type": "string",
            "description": "The type of charge on this line item.\nPossible values include:\n- Assess usage fee for current cycle: Access usage fee for the current billing period.\n- Assess usage fee when cancel: Access usage fee upon cancellation for unpaid usage during the current billing period.",
            "nullable": true,
            "example": "Assess usage fee for current cycle"
          },
          "serviceName": {
            "type": "string",
            "description": "The name of the service associated with the line item.",
            "nullable": true,
            "example": "Azure Data Factory v2"
          },
          "serviceType": {
            "type": "string",
            "description": "The type of the service associated with the line item.",
            "nullable": true,
            "example": ""
          },
          "resourceGuid": {
            "type": "string",
            "description": "The identifier of the resource associated with the charge.",
            "nullable": true,
            "example": "9d6f5dbf-90a1-46bc-85b7-e9c3f92bae35"
          },
          "resourceName": {
            "type": "string",
            "description": "The name of the resource associated with the charge.",
            "nullable": true,
            "example": "Cloud Data Movement"
          },
          "region": {
            "type": "string",
            "description": "The region associated with the charge.",
            "nullable": true,
            "example": "IE"
          },
          "sku": {
            "type": "string",
            "description": "The sku associated with the charge.",
            "nullable": true,
            "example": "7UD-00001"
          },
          "detailLineItemId": {
            "type": "integer",
            "description": "The id of the line item from the provider side.",
            "format": "int32",
            "example": 1
          },
          "consumedQuantity": {
            "type": "number",
            "description": "The consumed quantity of the resource.",
            "format": "double",
            "example": 146.6
          },
          "overageQuantity": {
            "type": "number",
            "description": "The overage quantity of the line item.",
            "format": "double",
            "example": 146.6
          },
          "includedQuantity": {
            "type": "number",
            "description": "The quantity included free of charge of the resource.",
            "format": "double",
            "example": 0
          },
          "currency": {
            "type": "string",
            "description": "The currency of the line item.",
            "nullable": true,
            "example": "EUR"
          },
          "unit": {
            "type": "string",
            "description": "The unit of charge associated with the line item, for example GB or Months.",
            "nullable": true,
            "example": "10K"
          },
          "listPrice": {
            "type": "number",
            "description": "The list price for the whole term of the subscription\nassociated to the charge.",
            "format": "double",
            "example": 0.1792
          },
          "listPriceForReseller": {
            "type": "number",
            "description": "The price of each unit for reseller (with margin).",
            "format": "double",
            "nullable": true,
            "example": 0.18473412
          },
          "listPriceForCustomer": {
            "type": "number",
            "description": "The price of each unit for customer (with reseller and customer margin).",
            "format": "double",
            "nullable": true,
            "example": 0.21082354
          },
          "subtotal": {
            "type": "number",
            "description": "The cost before taxes for the product associated with this line item.",
            "format": "double",
            "example": 26.27
          },
          "subtotalForReseller": {
            "type": "number",
            "description": "The cost the reseller pays for the subscription on this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 27.082022
          },
          "subtotalForCustomer": {
            "type": "number",
            "description": "The price the customer pays for the subscription on this charge before taxes.",
            "format": "double",
            "nullable": true,
            "example": 30.906729
          },
          "taxes": {
            "type": "number",
            "description": "The taxes applied to the line item.",
            "format": "double",
            "example": 26.27
          },
          "taxesForReseller": {
            "type": "number",
            "description": "The taxes the resellers pays for the subscription on this charge.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "taxesForCustomer": {
            "type": "number",
            "description": "The taxes the customer pays for the subscription on this charge.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "total": {
            "type": "number",
            "description": "The cost the CSP pays after taxes for this charge.",
            "format": "double",
            "example": 26.27
          },
          "totalForReseller": {
            "type": "number",
            "description": "The cost the reseller pays for the subscription on this charge after taxes.",
            "format": "double",
            "nullable": true,
            "example": 27.082022
          },
          "totalForCustomer": {
            "type": "number",
            "description": "The price the customer pays for the subscription on this charge after taxes.",
            "format": "double",
            "nullable": true,
            "example": 30.906729
          },
          "erpProrated": {
            "type": "number",
            "description": "The actual ERP used on the charge considering\nif the charge is a prorated one.",
            "format": "double",
            "nullable": true,
            "example": 0.0717
          },
          "customerProviderId": {
            "type": "string",
            "description": "The id of customer on the provider's side associated with the charge.",
            "nullable": true,
            "example": "CB0A371A-046A-46A9-A299-96BD755E67A8"
          },
          "subscriptionProviderId": {
            "type": "string",
            "description": "The id of the subscription associated to this charge on the provider's side.",
            "nullable": true,
            "example": "FA2A91FD-7286-4DCD-9718-20048CCA832A"
          },
          "erpPrice": {
            "type": "number",
            "description": "The ERP for the whole term of the subscription\nassociated with the charge.",
            "format": "double",
            "example": 0.0717
          },
          "subscriptionPONumber": {
            "type": "string",
            "description": "The purchase order number of the subscription associated with this charge.",
            "nullable": true,
            "example": "8543943821"
          },
          "id": {
            "type": "string",
            "description": "The id that uniquely identifies a usage invoice line item.",
            "format": "uuid",
            "example": "7828D90D-2AC6-4F20-A95B-EE850BCD32A0"
          },
          "billingCycleType": {
            "type": "string",
            "description": "The type of the billing cycle. The supported value is Monthly",
            "nullable": true,
            "example": "Monthly"
          },
          "resellerPriceMargin": {
            "type": "number",
            "description": "The reseller price margin according to the ResellerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "resellerPriceMarginRule": {
            "type": "string",
            "description": "The reseller price margin rule. The possible values are: markup, margin, splitmargin and erpminusdiscount.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "customerPriceMargin": {
            "type": "number",
            "description": "The customer price margin according to the CustomerPriceMarginRule.",
            "format": "double",
            "nullable": true,
            "example": 0
          },
          "customerPriceMarginRule": {
            "type": "string",
            "description": "The customer price margin rule. The possible values are: markup, margin, splitmargin and erpminusdiscount.",
            "nullable": true,
            "example": "erpminusdiscount"
          },
          "subscriptionPriceMargin": {
            "type": "number",
            "description": "The subscription price margin according to the SubscriptionPriceMarginRule.",
            "format": "double",
            "nullable": true
          },
          "subscriptionPriceMarginRule": {
            "type": "string",
            "description": "The subscription price margin rule. The possible values are: markup, margin, splitmargin and erpminusdiscount.",
            "nullable": true,
            "example": ""
          },
          "providerData": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "A dictionary that maps from strings to strings that contains specific provider invoice data.\n\n\nIf this line item is associated to a Microsoft invoice then the possible values are:\n**ResellerMpnId**: The mpn id of the reseller associated with the charge. If no reseller is associated then this property is not present, example: \"6286\".\n**ServiceName**: The name of the service associated with the charge. For example: \"Storage\".\n\n",
            "nullable": true,
            "example": {
              "ResellerMpnId": 3267,
              "ServiceName": "Storage"
            }
          }
        },
        "additionalProperties": false,
        "description": "A model that represents a single charge of a usage invoice.\nIn the case of the Microsoft provider each line item represents an **Azure legacy** charge."
      },
      "InvoiceUsageLineItemViewModelSeekBasedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceUsageLineItemViewModel"
            },
            "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."
      },
      "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"
      },
      "JToken": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/JToken"
        }
      },
      "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"
      },
      "MarketplacePublisherViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the marketplace publisher.",
            "format": "uuid",
            "readOnly": true
          },
          "publisherName": {
            "type": "string",
            "description": "The name of the marketplace publisher.",
            "nullable": true,
            "readOnly": true
          },
          "supportedMarkets": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CountryCode"
            },
            "description": "The supported markets of the marketplace publisher.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The viewmodel for the Marketplace Publisher entity."
      },
      "MarketplacePublisherViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketplacePublisherViewModel"
            },
            "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"
      },
      "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."
      },
      "MicrosoftCustomerAgreementViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MicrosoftCustomerAgreementViewModel"
            },
            "description": "The items for this page.",
            "nullable": true,
            "readOnly": true
          },
          "paginationParameters": {
            "$ref": "#/components/schemas/PaginationParameters"
          },
          "totalPages": {
            "type": "integer",
            "description": "The total number of pages available for the specified parameters and page size.",
            "format": "int32",
            "readOnly": true
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of results available for the specified parameters. Note this is typically not equal to the Count of items in the Items property, will only be equal if all the items fit in the first page.",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "description": "Indicates if there is a previous page.",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Indicates if there is a next page.",
            "readOnly": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Helper class to be used on paged collection entities"
      },
      "MicrosoftPartnerAgreementStatusViewModel": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string",
            "description": "The code of the error response from the Partner Center API when verifying if a reseller has the Microsoft Partner Agreement signed in the same region of the CSP.",
            "nullable": true,
            "readOnly": true
          },
          "errorMessage": {
            "type": "string",
            "description": "The error message from the Partner Center API that occured when verifying if a reseller has the Microsoft Partner Agreement signed in the same region of the CSP.",
            "nullable": true,
            "readOnly": true
          },
          "isAgreementSigned": {
            "type": "boolean",
            "description": "The property that indicates if the reseller has signed the Microsoft Partner Agreement in the same region of the CSP or not.\nWhen an error happens, this property is ommited in the response of the API.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "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
      },
      "MpnProfileViewModel": {
        "type": "object",
        "properties": {
          "mpnId": {
            "type": "string",
            "description": "The mpn id of the partner. Can be null if an error occurred retrieving the profile.",
            "nullable": true,
            "readOnly": true
          },
          "partnerName": {
            "type": "string",
            "description": "The name of the partner associated to the mpn id. Can be null if an error occurred retrieving the profile.",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "type": "string",
            "description": "An error code received from partner center APIs.",
            "nullable": true,
            "readOnly": true
          },
          "errorMessage": {
            "type": "string",
            "description": "An error message received from partner center APIs.",
            "nullable": true,
            "readOnly": 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."
      },
      "PartnerCenterEvent": {
        "type": "object",
        "properties": {
          "eventName": {
            "type": "string",
            "description": "The name of the event. In the form {resource}-{action}. For example, \"test-created\".",
            "nullable": true
          },
          "resourceUri": {
            "type": "string",
            "description": "The URI of the resource that changed.",
            "nullable": true
          },
          "resourceName": {
            "type": "string",
            "description": "The name of the resource that changed.",
            "nullable": true
          },
          "auditUrl": {
            "type": "string",
            "description": "Optional. The URI of the Audit record.",
            "nullable": true
          },
          "resourceChangeUtcDate": {
            "type": "string",
            "description": "The date and time, in UTC format, when the resource change occurred.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Represents a partner center event"
      },
      "PortalDefaultsViewModel": {
        "type": "object",
        "properties": {
          "defaultCurrency": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PowerBIReport": {
        "type": "object",
        "properties": {
          "embedToken": {
            "type": "string",
            "description": "Gets or sets the embed token.",
            "nullable": true
          },
          "embedTokenExpiration": {
            "type": "string",
            "description": "Gets or sets the embed token expiration.",
            "format": "date-time"
          },
          "embedUrl": {
            "type": "string",
            "description": "Gets or sets the embed URL.",
            "nullable": true
          },
          "reportId": {
            "type": "string",
            "description": "Gets or sets the report identifier.",
            "format": "uuid"
          },
          "datasetId": {
            "type": "string",
            "description": "Gets or sets the dataset identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The model that represents a PowerBI embedded report."
      },
      "Price": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The price value.",
            "format": "double",
            "readOnly": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        },
        "additionalProperties": false
      },
      "PriceListReportFileViewModel": {
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The id of the provider instance for which the report file is desired.\nCan be obtained by querying the /Providers/Instances endpoint.",
            "format": "uuid",
            "example": "8f402219-983b-41f9-b744-f1c60d3d16a0"
          },
          "resellerId": {
            "type": "string",
            "description": "The id of the customer if the report was generated on the context of a customer.\nOtherwise it is null.",
            "format": "uuid",
            "nullable": true,
            "example": ""
          },
          "market": {
            "type": "string",
            "description": "The market of the prices in the report in standard ISO 3166-1 alpha-2 format.",
            "nullable": true,
            "example": "IE"
          },
          "offerType": {
            "type": "string",
            "description": "The offer type must be set to license, softwaresubscription, perpetualsoftware or azurereservation.\nLicense legacy reports are not supported.",
            "nullable": true,
            "example": "license"
          },
          "customerId": {
            "type": "string",
            "description": "The id of the customer if the report was generated on the context of a customer.\nOtherwise it is null.",
            "format": "uuid",
            "nullable": true,
            "example": ""
          }
        },
        "additionalProperties": false,
        "description": "The view model that represents the details about the price list report file."
      },
      "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"
      },
      "ProviderResellerViewModel": {
        "required": [
          "priceMargin",
          "providerInstanceId",
          "resellerProviderData"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The id of the provider instance to which the reseller with ResellerId is associated to.\nMust always be set.",
            "format": "uuid",
            "example": "a393f55e-8249-47a5-b11f-80c8dc7905c9"
          },
          "priceMargin": {
            "$ref": "#/components/schemas/PriceMargin"
          },
          "offerTypeMargins": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PriceMargin"
            },
            "description": "Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance.\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,
            "example": {
              "license": {
                "marginRule": {
                  "name": "markup"
                },
                "value": 6
              }
            }
          },
          "providerResellerId": {
            "type": "string",
            "description": "An id that identifies the reseller has on the provider instance.\nFor a Microsoft Tier 2 provider instance set ProviderResellerId to the primary mpn id of the reseller,\nwhich is the mpn id that will be used for new subscription purchases.\nWhen adding a provider instance to a reseller for a Microsoft Tier 1 environment or a generic provider,\ndon't pass this property on the creation request.",
            "nullable": true,
            "example": "123"
          },
          "resellerProviderData": {
            "type": "string",
            "description": "A json formatted string which contains specific data for the reseller association to the provider instance.\nFor Microsoft Tier 1 resellers, this property can be a empty json: \"{}\".\nOn Microsoft Tier 2 resellers, this property will be a json with the following format:\n{\"IndirectResellerId\":string,\"SecondaryMpnIds\":string[]}",
            "nullable": true,
            "example": "JSON Object: {\"IndirectResellerId\":null,\"SecondaryMpnIds\":[\"123\"]}"
          },
          "status": {
            "$ref": "#/components/schemas/EntityStatus"
          }
        },
        "additionalProperties": false
      },
      "ProviderViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the provider.",
            "format": "uuid",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the provider.",
            "nullable": true,
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "The description of the provider.",
            "nullable": true,
            "readOnly": true
          },
          "imageUrl": {
            "type": "string",
            "description": "The url that points to the image that represents the provider.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The viewmodel for the Provider entity."
      },
      "ProvidersInstancesBillingCurrenciesViewModel": {
        "type": "object",
        "properties": {
          "billingCurrencies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Billing Currency Value. Example: { \"EUR\", \"GBP\" }",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "View model that represents a provider's instance Billing Currency."
      },
      "Qualification": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "RenewOfferViewModel": {
        "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
          },
          "providerOfferId": {
            "type": "string",
            "description": "The provider's offer identifier, without the availability (productId:skuId).\nThis is the identifier the offers are stored with.",
            "nullable": true
          },
          "providerOfferIdWithAvailability": {
            "type": "string",
            "description": "The provider's offer identifier including the availability (productId:skuId:availabilityId).\nThis is the identifier the provider expects when scheduling a renewal.",
            "nullable": true
          },
          "minQuantity": {
            "type": "integer",
            "description": "The minimum quantity for this offer.",
            "format": "int32"
          },
          "maxQuantity": {
            "type": "integer",
            "description": "The maximum quantity for this offer.",
            "format": "int32"
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OfferPriceViewModel"
            },
            "description": "The offer prices, used to derive the available terms, billing frequencies and renewal price.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "View model that represents an offer a subscription is eligible to renew to.\nOnly carries what the renewal flow needs, plus the availability qualified provider offer id\nthat the provider requires when scheduling the renewal."
      },
      "ReportFileDownloadViewModel": {
        "type": "object",
        "properties": {
          "fileLocation": {
            "type": "string",
            "description": "The absolute URL that allows downloading the report file.",
            "nullable": true
          },
          "fileName": {
            "type": "string",
            "description": "The name that the downloaded file will have when pressing download on the frontend.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A viewmodel which contains the properties that we need for the frontend\nin order to download a report file."
      },
      "ReportFileViewModel": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/FileStatus"
          },
          "fileLocation": {
            "type": "string",
            "description": "The absolute URL of the location of the report file.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "The id of the report file.",
            "format": "uuid"
          },
          "providerInstanceId": {
            "type": "string",
            "description": "The id of the provider instance to which this file refers to.\nSome report files may have this property set to null.",
            "format": "uuid",
            "nullable": true
          },
          "resellerId": {
            "type": "string",
            "description": "The id of the reseller to which the file refers to.",
            "format": "uuid",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "description": "The id of the customer to which the file refers to.",
            "format": "uuid",
            "nullable": true
          },
          "reportType": {
            "$ref": "#/components/schemas/ReportType"
          },
          "reportParameters": {
            "type": "string",
            "description": "The parameters of the report.",
            "nullable": true
          },
          "lastUpdate": {
            "type": "string",
            "description": "The timestamp of the last update of the file.",
            "format": "date-time",
            "example": "2023-01-01 00:00:00.0000000"
          }
        },
        "additionalProperties": false
      },
      "ReportFileViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportFileViewModel"
            },
            "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"
      },
      "ReportType": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The report type. Possible values: LicenseCatalogue, UserLicenses, SoftwareSubscriptionCatalogue, PerpetualSoftwareCatalogue, ReservationCatalogue"
      },
      "ResellerCustomDomainViewModel": {
        "type": "object",
        "properties": {
          "customDomain": {
            "type": "string",
            "description": "The custom domain value.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/CustomDomainStatus"
          }
        },
        "additionalProperties": false
      },
      "ResellerViewModel": {
        "required": [
          "addressLine1",
          "city",
          "companyName",
          "country",
          "email",
          "firstName",
          "lastName",
          "phone",
          "providerResellers",
          "state",
          "zipCode"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The reseller Id.",
            "format": "uuid"
          },
          "companyName": {
            "type": "string",
            "description": "The name of the company associated to the reseller. This may be up to 255 characters.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "The company country. Must be in standard iso 3166-1 alpha 2.",
            "nullable": true
          },
          "addressLine1": {
            "type": "string",
            "description": "The company address line 1. This may be up to 255 characters.",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "description": "The company address line 2. This may be up to 255 characters.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "The company city. This may be up to 255 characters.",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "The company state. This may be up to 255 characters.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "The company ZIP. Should be a valid zip according to the company country. This may be up to 30 characters.",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "The company primary contact first name. This may be up to 255 characters.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "The company primary contact last name. This may be up to 255 characters.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The company primary contact email. This may be up to 255 characters.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "The company primary contact phone. Should be a valid phone according to the company country. This may be up to 30 characters.",
            "nullable": true
          },
          "internalIdentifier": {
            "type": "string",
            "description": "The company internal identifier. This may be up to 255 characters.",
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "description": "The tax id of the company. This may be up to 255 characters.",
            "nullable": true
          },
          "providerResellers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderResellerViewModel"
            },
            "description": "The provider resellers. A list containing the info about this reseller in one or more provider instances.",
            "nullable": true,
            "example": {
              "providerInstanceId": "cb3cd15b-1d6e-45be-b493-c71549cbfd87",
              "providerResellerId": "968bd16f-7eca-494d-b29f-440b9ef5cf5d",
              "priceMargin": {
                "marginRule": {
                  "name": "markup"
                },
                "value": 8
              },
              "offerTypeMargins": {
                "Value": {
                  "license": {
                    "MarginRule": {
                      "Name": "markup"
                    },
                    "Value": 10
                  }
                }
              },
              "resellerProviderData": "{\"indirectResellerId\" : \"f94f06fd-dc98-47fb-bd49-63bc98bd87f2\",\"secondaryMpnIds\": [ \"123456\", \"654321\"]}"
            }
          },
          "customDomain": {
            "$ref": "#/components/schemas/ResellerCustomDomainViewModel"
          }
        },
        "additionalProperties": false,
        "description": "View model that represents a reseller."
      },
      "ResellerViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResellerViewModel"
            },
            "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"
      },
      "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"
      },
      "ServiceManagementLink": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The display name.",
            "nullable": true
          },
          "link": {
            "type": "string",
            "description": "The link uri.",
            "format": "uri",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SetMonthlyBudgetRequest": {
        "type": "object",
        "properties": {
          "monthlyBudget": {
            "type": "number",
            "description": "The new monthly budget to set in the azure subscription relationship. Can be null, to set no budget.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StartMcaAttestationViewModel": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "The first name of the signatory",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "The last name of the signatory",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The email address of the signatory",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "The phone number of the signatory",
            "nullable": true
          },
          "expirationTime": {
            "type": "integer",
            "description": "The expiration time in minutes for the attestation link. Must be between 5 and 10080.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents the information related to a Microsoft Customer Agreement (MCA)."
      },
      "SubscriptionBaseInfoViewModel": {
        "required": [
          "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
      },
      "SubscriptionListItemPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionListItem"
            },
            "description": "The items for this page.",
            "nullable": true,
            "readOnly": true
          },
          "paginationParameters": {
            "$ref": "#/components/schemas/PaginationParameters"
          },
          "totalPages": {
            "type": "integer",
            "description": "The total number of pages available for the specified parameters and page size.",
            "format": "int32",
            "readOnly": true
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of results available for the specified parameters. Note this is typically not equal to the Count of items in the Items property, will only be equal if all the items fit in the first page.",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "description": "Indicates if there is a previous page.",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Indicates if there is a next page.",
            "readOnly": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Helper class to be used on paged collection entities"
      },
      "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
      },
      "SupportWidgetSettingsViewModel": {
        "type": "object",
        "properties": {
          "scriptContent": {
            "type": "string",
            "description": "The content of the script",
            "nullable": true
          },
          "resellerAccess": {
            "type": "boolean",
            "description": "Whether the reseller has access to the support widget."
          },
          "customerAccess": {
            "type": "boolean",
            "description": "Whether the customer has access to the support widget."
          }
        },
        "additionalProperties": false,
        "description": "The view model for the support widget settings"
      },
      "SynchronizableAuditLogViewModel": {
        "type": "object",
        "properties": {
          "auditLog": {
            "$ref": "#/components/schemas/AuditLogViewModel"
          },
          "syncStatus": {
            "type": "string",
            "description": "The sync status for the operation. If null, the operation is not synchronizable.\nPossible values: \"synced\", \"syncing\", \"outofsync\", null.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "View model that represents an audit log with a sync status."
      },
      "SynchronizableAuditLogViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SynchronizableAuditLogViewModel"
            },
            "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"
      },
      "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
      },
      "TriggerSubscriptionMappingRequest": {
        "type": "object",
        "properties": {
          "contractConnectionId": {
            "type": "string",
            "description": "The id of the contract on the connection's side.",
            "nullable": true,
            "example": "2727"
          },
          "connectionContractName": {
            "type": "string",
            "description": "The name of the contract.",
            "nullable": true,
            "example": "Licencing"
          }
        },
        "additionalProperties": false,
        "description": "The model with the properties that should be sent when triggering a mapping between a subscription and a connection."
      },
      "UnifiedRole": {
        "type": "object",
        "properties": {
          "roleDefinitionId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UnifiedRoleViewModel": {
        "type": "object",
        "properties": {
          "roleDefinitionId": {
            "type": "string",
            "description": "The unified role definition ID of the directory role.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The directory roles that can be assigned to a Microsoft partner through a delegated admin relationship."
      },
      "UpdateAlertPolicyStatusRequest": {
        "type": "object",
        "properties": {
          "isEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerAccountInfoRequest": {
        "type": "object",
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/CustomerAccountInfoViewModel"
          },
          "retryFailedProviderCustomersFromCompanyInfo": {
            "type": "boolean",
            "description": "This flag indicates if we want to retry any provider customer that failed from invalid company info."
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerInternalIdentifierRequest": {
        "type": "object",
        "properties": {
          "internalIdentifier": {
            "type": "string",
            "description": "The new internal identifier to set in the customer relationship. This may be up to 255 characters.",
            "nullable": true
          },
          "resellerId": {
            "type": "string",
            "description": "The GUID identifier for the reseller. If value is null it will be the relation with the CSP.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerMarginsRequest": {
        "required": [
          "margin"
        ],
        "type": "object",
        "properties": {
          "margin": {
            "$ref": "#/components/schemas/PriceMargin"
          },
          "offerTypeMargins": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PriceMargin"
            },
            "description": "Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance.\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,
            "example": {
              "value": {
                "license": {
                  "marginRule": {
                    "name": "markup"
                  },
                  "value": 10
                }
              }
            }
          },
          "resellerId": {
            "type": "string",
            "description": "The GUID identifier for the reseller. If set to null, this means direct relationship with CSP.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerQualificationRequest": {
        "required": [
          "providerInstanceId",
          "qualification"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          },
          "qualification": {
            "$ref": "#/components/schemas/Qualification"
          },
          "educationSegment": {
            "type": "string",
            "description": "The education segment (Education qualification only).",
            "nullable": true
          },
          "website": {
            "type": "string",
            "description": "The education website (Education qualification only).",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerRelationshipRequest": {
        "required": [
          "autoExtendEnabled",
          "providerInstanceId"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid",
            "example": "B8E08E60-19F7-4F95-AE29-A82D3CD53F84"
          },
          "autoExtendEnabled": {
            "type": "boolean",
            "description": "The flag to indicate whether the relationship is auto extend enabled. Must be true or false",
            "example": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerUserLicensesRequest": {
        "required": [
          "customerUserLicenses",
          "providerInstanceId"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          },
          "customerUserLicenses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerLicenseViewModel"
            },
            "description": "The list of licenses to update the customer user.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerUserRolesRequest": {
        "required": [
          "providerInstanceId",
          "roleIds"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          },
          "roleIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The list of role Ids to assign to the customer user.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateMicrosoftCustomerDomainRequest": {
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          },
          "domain": {
            "type": "string",
            "description": "The new microsoft domain to update in this customer.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateResellerAccountInfoRequest": {
        "required": [
          "addressLine1",
          "city",
          "companyName",
          "country",
          "email",
          "firstName",
          "lastName",
          "phone",
          "state",
          "zipCode"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string",
            "description": "The name of the company associated to the reseller. This may be up to 255 characters.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "The company country. Must be in standard iso 3166-1 alpha 2.",
            "nullable": true
          },
          "addressLine1": {
            "type": "string",
            "description": "The company address line 1. This may be up to 255 characters.",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "description": "The company address line 2. This may be up to 255 characters.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "The company city. This may be up to 255 characters.",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "The company state. This may be up to 255 characters.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "The company ZIP. Should be a valid zip according to the company country. This may be up to 30 characters.",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "The company primary contact first name. This may be up to 255 characters.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "The company primary contact last name. This may be up to 255 characters.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The company primary contact email. This may be up to 255 characters.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "The company primary contact phone. Should be a valid phone according to the company country. This may be up to 30 characters.",
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "description": "The tax id of the company. This may be up to 255 characters.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UpdateResellerMarginsRequest": {
        "required": [
          "priceMargin",
          "providerInstanceId"
        ],
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The GUID identifier for the provider instance.",
            "format": "uuid"
          },
          "priceMargin": {
            "$ref": "#/components/schemas/PriceMargin"
          },
          "offerTypeMargins": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PriceMargin"
            },
            "description": "Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance.\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,
            "example": {
              "license": {
                "marginRule": {
                  "name": "markup"
                },
                "value": 10
              },
              "azurereservation": {
                "marginRule": {
                  "name": "erpminusdiscount"
                },
                "value": 5.4
              }
            }
          }
        },
        "additionalProperties": false
      },
      "UserLicensesReportFileViewModel": {
        "type": "object",
        "properties": {
          "providerInstanceId": {
            "type": "string",
            "description": "The provider instance GUID identifier to fetch the customer users from. Since this resource is specific to the Microsoft provider, this request is only valid for provider instance that belong to a Microsoft tenant/provider.",
            "format": "uuid"
          },
          "resellerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The view model that represents the details about the user licenses report file."
      },
      "UserRole": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the enumeration.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UserViewModel": {
        "required": [
          "email",
          "firstName",
          "groups",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the user.",
            "format": "uuid"
          },
          "firstName": {
            "type": "string",
            "description": "The first name of the user. This may be up to 255 characters.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "The last name of the user. This may be up to 255 characters.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The email. This may be up to 255 characters.",
            "nullable": true
          },
          "role": {
            "$ref": "#/components/schemas/UserRole"
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupViewModel"
            },
            "description": "The user groups.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "View model that represents a user."
      },
      "UserViewModelPagedCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserViewModel"
            },
            "description": "The items for this page.",
            "nullable": true,
            "readOnly": true
          },
          "paginationParameters": {
            "$ref": "#/components/schemas/PaginationParameters"
          },
          "totalPages": {
            "type": "integer",
            "description": "The total number of pages available for the specified parameters and page size.",
            "format": "int32",
            "readOnly": true
          },
          "totalCount": {
            "type": "integer",
            "description": "The total number of results available for the specified parameters. Note this is typically not equal to the Count of items in the Items property, will only be equal if all the items fit in the first page.",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "description": "Indicates if there is a previous page.",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Indicates if there is a next page.",
            "readOnly": true
          },
          "continuationToken": {
            "type": "string",
            "description": "The token to continue to retrieve the paginated items.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Helper class to be used on paged collection entities"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "bearerAuth": [ ]
    }
  ],
  "x-topics": [
    {
      "title": "Getting Started",
      "content": "To get started using CloudCockpit API you need a valid API Access. You can create and obtain one very easily if you are a CSP and have the required permission.\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```"
    }
  ]
}