{
  "components": {
    "schemas": {
      "AnyValue": {},
      "AuthenticationSchema": {
        "properties": {
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Authentication headers.",
            "type": "object"
          },
          "queryParams": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Authentication query parameters.",
            "type": "object"
          }
        },
        "title": "AuthenticationSchema",
        "type": "object"
      },
      "CreateTokenSchema": {
        "properties": {
          "description": {
            "description": "Description of the token. Max 128 characters.",
            "example": "Development token for my home machine",
            "maxLength": 128,
            "minLength": 0,
            "type": "string"
          },
          "expireDate": {
            "description": "Token expiration date. Maximum one year after creation.",
            "format": "date-time",
            "type": "string"
          },
          "organizationId": {
            "description": "ID of the organization that this token allows access to.",
            "format": "uuid",
            "type": "string"
          },
          "permissions": {
            "additionalProperties": {},
            "description": "Token permissions. Only needed if the `type` is one of '('restricted', 'ephemeral')'.",
            "example": {},
            "type": "object"
          },
          "type": {
            "description": "Type of token.",
            "enum": [
              "login",
              "full-access",
              "restricted",
              "ephemeral"
            ],
            "example": "full-access",
            "type": "string"
          }
        },
        "required": [
          "type",
          "organizationId"
        ],
        "title": "CreateTokenSchema",
        "type": "object"
      },
      "CustomerUsageDataJsonSchema": {
        "properties": {
          "supplemental": {
            "$ref": "#/components/schemas/SupplementalData",
            "description": "Metadata pertaining to the query.",
            "readOnly": true
          },
          "value": {
            "description": "The usage data per day per meter",
            "items": {
              "$ref": "#/components/schemas/MeterData"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "CustomerUsageDataJsonSchema",
        "type": "object"
      },
      "CustomerUsageQueryData": {
        "properties": {
          "download": {
            "default": false,
            "description": "When true, sets response headers to prompt a browser file download.",
            "type": "boolean"
          },
          "endDate": {
            "description": "End date of the usage report (exclusive). This use to be inclusive. \nTo get a full month of usage, set both startDate and endDate to the first of the month. \nMaximum range depends on granularity: 31 days for 'hour', 1 year for 'day', unlimited for 'week', 'month', or 'year'.\",",
            "example": "2025-04-01",
            "format": "date",
            "type": "string"
          },
          "filterOnReportedDate": {
            "default": false,
            "description": "When true, filters usage by report_time (when the usage was charged) rather than sample_time (when it occurred). Useful for reconciling against invoice dates. Defaults to false.",
            "type": "boolean"
          },
          "format": {
            "default": "json",
            "description": "Response format. Either 'json' or 'csv'. Defaults to 'json'.",
            "enum": [
              "json",
              "csv"
            ],
            "type": "string"
          },
          "granularity": {
            "default": "day",
            "description": "Time bucket for aggregation. Defaults to 'day'.",
            "enum": [
              "year",
              "month",
              "week",
              "day",
              "hour"
            ],
            "type": "string"
          },
          "groupBy": {
            "description": "Fields to group results by. Only 'meter' is currently valid. Defaults to ['meter'].",
            "example": [
              "meter"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "meterNames": {
            "description": "Filter results to the specified meter names.",
            "example": [
              "video_encoding_ondemand"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "paymentMethodIds": {
            "description": "Filter results to the specified payment method IDs. Mutually exclusive with projectNames.",
            "example": [
              "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
            ],
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "type": "array"
          },
          "projectNames": {
            "description": "Filter results to the specified project names. Mutually exclusive with paymentMethodIds.",
            "example": [
              "my-project"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "startDate": {
            "description": "Start date of the usage report (inclusive).",
            "example": "2025-03-01",
            "format": "date",
            "type": "string"
          }
        },
        "required": [
          "startDate",
          "endDate"
        ],
        "title": "CustomerUsageQueryData",
        "type": "object"
      },
      "Error": {
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ErrorDetail",
            "description": "Pertinent information about the error"
          },
          "ref": {
            "description": "A reference to the request that caused the error.",
            "type": "string"
          },
          "status": {
            "description": "The HTTP status code",
            "type": "integer"
          }
        },
        "required": [
          "error",
          "status",
          "ref"
        ],
        "title": "Error",
        "type": "object"
      },
      "ErrorDetail": {
        "properties": {
          "code": {
            "description": "The error code.",
            "type": "string"
          },
          "detail": {
            "description": "The error message.",
            "type": "string"
          },
          "extraDetail": {
            "additionalProperties": {},
            "description": "Extra information regarding this error.",
            "type": "object"
          }
        },
        "required": [
          "code",
          "detail"
        ],
        "title": "ErrorDetail",
        "type": "object"
      },
      "InviteGetSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/InviteMetadataSchema",
            "description": "Metadata",
            "readOnly": true
          },
          "spec": {
            "$ref": "#/components/schemas/InviteSpecSchema",
            "description": "Specification"
          }
        },
        "required": [
          "spec"
        ],
        "title": "InviteGetSchema",
        "type": "object"
      },
      "InviteListSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "value": {
            "description": "List of pending invites",
            "items": {
              "$ref": "#/components/schemas/InviteGetSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "kind",
          "value"
        ],
        "title": "InviteListSchema",
        "type": "object"
      },
      "InviteMetadataSchema": {
        "properties": {
          "created": {
            "description": "The time when the resource was created",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "InviteMetadataSchema",
        "type": "object"
      },
      "InvitePostSchema": {
        "properties": {
          "spec": {
            "$ref": "#/components/schemas/InviteSpecSchema",
            "description": "Specification"
          }
        },
        "required": [
          "spec"
        ],
        "title": "InvitePostSchema",
        "type": "object"
      },
      "InviteSpecSchema": {
        "properties": {
          "comment": {
            "description": "Comment to explain why the user has been invited to collaborate with your organization",
            "type": "string"
          },
          "email": {
            "description": "Email of the user to be invited",
            "type": "string"
          },
          "invitedByEmail": {
            "description": "Contact email of user who made the invite",
            "readOnly": true,
            "type": "string"
          },
          "invitedByName": {
            "description": "Name of user who made the invite",
            "readOnly": true,
            "type": "string"
          },
          "organizationName": {
            "description": "Name of the organization the invite refers to",
            "readOnly": true,
            "type": "string"
          },
          "teams": {
            "description": "List of team names to add this user to when they accept.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "email",
          "organizationName",
          "invitedByName",
          "invitedByEmail",
          "comment"
        ],
        "title": "InviteSpecSchema",
        "type": "object"
      },
      "JsonPatchEntry": {
        "properties": {
          "op": {
            "description": "Operation",
            "enum": [
              "add",
              "remove",
              "replace",
              "stringReplace",
              "numberReplace"
            ],
            "type": "string"
          },
          "path": {
            "description": "Path",
            "type": "string"
          },
          "search": {
            "description": "Search string for 'stringReplace' and 'numberReplace' operations.  \n'numberReplace' replaces with JSON number type but only when the search string matches the entire value. I.e \"audio_pid\" would be replaced with 50, not \"50\".",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/AnyValue",
            "description": "Value"
          }
        },
        "required": [
          "op",
          "path"
        ],
        "title": "JsonPatchEntry",
        "type": "object"
      },
      "ListResponseSupplementalSchema": {
        "properties": {
          "count": {
            "description": "Number of items returned",
            "readOnly": true,
            "type": "integer"
          },
          "kind": {
            "description": "Type of items in the list",
            "readOnly": true,
            "type": "string"
          },
          "operation": {
            "description": "Operation type. Should always say 'list'",
            "readOnly": true,
            "type": "string"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfoSchema",
            "description": "Pagination info",
            "readOnly": true
          },
          "subscription": {
            "$ref": "#/components/schemas/ProjectInfoSchema",
            "description": "Project info",
            "readOnly": true
          }
        },
        "required": [
          "kind",
          "count",
          "operation",
          "pagination"
        ],
        "title": "ListResponseSupplementalSchema",
        "type": "object"
      },
      "LocationCloudSchema": {
        "properties": {
          "displayName": {
            "description": "The display name of the cloud.",
            "example": "Azure",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The unique name of the cloud.",
            "example": "azure",
            "type": "string"
          },
          "region": {
            "$ref": "#/components/schemas/LocationRegionSchema",
            "description": "Cloud region."
          }
        },
        "required": [
          "displayName"
        ],
        "title": "LocationCloudSchema",
        "type": "object"
      },
      "LocationListResponseSchema_v1": {
        "properties": {
          "kind": {
            "description": "The type of the resource.",
            "readOnly": true,
            "type": "string"
          },
          "value": {
            "description": "A list of Locations",
            "items": {
              "$ref": "#/components/schemas/LocationSchema_v1"
            },
            "type": "array"
          }
        },
        "required": [
          "value"
        ],
        "title": "LocationListResponseSchema_v1",
        "type": "object"
      },
      "LocationRegionSchema": {
        "properties": {
          "displayName": {
            "description": "The display name of the cloud region.",
            "example": "UK South",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the cloud region (unique within the cloud).",
            "example": "uksouth",
            "type": "string"
          }
        },
        "required": [
          "displayName"
        ],
        "title": "LocationRegionSchema",
        "type": "object"
      },
      "LocationSchema_v1": {
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/MetadataMinimalSchema",
            "description": "Metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/LocationSpecSchema_v1",
            "description": "Specification."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "LocationSchema_v1",
        "type": "object"
      },
      "LocationSpecSchema_v1": {
        "properties": {
          "cloud": {
            "$ref": "#/components/schemas/LocationCloudSchema",
            "description": "Cloud."
          },
          "organization": {
            "$ref": "#/components/schemas/OrganizationSpecSchema_v1",
            "description": "Organization information if applicable."
          },
          "type": {
            "description": "Is the location one that is usable only by your your organization?",
            "enum": [
              "SaaS",
              "Dedicated"
            ],
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "title": "LocationSpecSchema_v1",
        "type": "object"
      },
      "MetadataMinimalSchema": {
        "properties": {
          "displayName": {
            "description": "The display name of the resource",
            "type": "string"
          },
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "MetadataMinimalSchema",
        "type": "object"
      },
      "MeterData": {
        "properties": {
          "cost": {
            "description": "Monetary value of usage for this record, in the currency specified by the currency field. How this is charged depends on the entitlement type: for a license entitlement the amount is fully covered and nothing is billed; for cash, quantity, or pre-commitment entitlements this amount is deducted from the entitlement balance; with no entitlement the amount is billed directly.",
            "readOnly": true,
            "type": "string"
          },
          "currency": {
            "description": "The currency of the cost field.",
            "readOnly": true,
            "type": "string"
          },
          "date": {
            "description": "The date and time of this usage record. Truncated to the granularity of the query (e.g. if granularity is 'day' then time will be 00:00:00).",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "dateProcessed": {
            "description": "The report_time truncated to the requested granularity. Null for usage that has not yet been charged. Comparing against date (sample_time) reveals late-reported data.",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "entitlement": {
            "description": "The ID of the entitlement applied to this usage. Can be joined against the /entitlements endpoint.",
            "format": "uuid",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "entitlementType": {
            "description": "The type of entitlement applied to this usage, if any.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "family": {
            "description": "Product family this meter belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "meterName": {
            "description": "The meter name.",
            "readOnly": true,
            "type": "string"
          },
          "meterSku": {
            "description": "The SaaS SKU identifier for this meter.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "paymentMethod": {
            "description": "The ID of the payment method associated with this usage.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "paymentMethodName": {
            "description": "The display name of the payment method associated with this usage.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "price": {
            "description": "Per-unit price for this record (cost / quantity).",
            "readOnly": true,
            "type": "number"
          },
          "project": {
            "description": "The name of the project this usage belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "quantity": {
            "description": "Total units accrued for this record.",
            "readOnly": true,
            "type": "number"
          },
          "solution": {
            "description": "Solution within the product family this meter belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "unit": {
            "description": "The unit that this meter is reported in, e.g. 'gigabytes' or 'minutes'.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "date",
          "meterName",
          "cost",
          "currency",
          "quantity"
        ],
        "title": "MeterData",
        "type": "object"
      },
      "MetricsSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/MetricsSpecSchema",
            "description": "Specification."
          },
          "status": {
            "$ref": "#/components/schemas/MetricsStatusSchema",
            "description": "Status when spec.enabled is true.",
            "readOnly": true
          }
        },
        "required": [
          "spec"
        ],
        "title": "MetricsSchema",
        "type": "object"
      },
      "MetricsSpecSchema": {
        "properties": {
          "enabled": {
            "description": "Is metrics enabled?",
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "title": "MetricsSpecSchema",
        "type": "object"
      },
      "MetricsStatusSchema": {
        "properties": {
          "password": {
            "description": "Password for metrics.",
            "readOnly": true,
            "type": "string"
          },
          "url": {
            "description": "URL for metrics.",
            "readOnly": true,
            "type": "string"
          },
          "username": {
            "description": "Username for metrics.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "username",
          "password",
          "url"
        ],
        "title": "MetricsStatusSchema",
        "type": "object"
      },
      "OrganizationCreateSchema": {
        "properties": {
          "spec": {
            "$ref": "#/components/schemas/OrganizationCreateSpecSchema",
            "description": "Specification"
          }
        },
        "required": [
          "spec"
        ],
        "title": "OrganizationCreateSchema",
        "type": "object"
      },
      "OrganizationCreateSpecSchema": {
        "properties": {
          "legalEntityAddress": {
            "description": "The legal address of the purchaser.",
            "type": "string"
          },
          "legalEntityContactEmail": {
            "description": "The primary officer's email address.",
            "type": "string"
          },
          "legalEntityName": {
            "description": "The legal entity name of the purchaser.",
            "type": "string"
          },
          "legalEntityOfficer": {
            "description": "The name of the primary officer of the purchaser.",
            "type": "string"
          },
          "name": {
            "description": "Name of the organization.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "OrganizationCreateSpecSchema",
        "type": "object"
      },
      "OrganizationMetadataSchema": {
        "properties": {
          "created": {
            "description": "The time when the resource was created",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "ID of the user who created the resource",
            "format": "uuid",
            "type": "string"
          },
          "createdByEmail": {
            "description": "Email of the user who created the resource",
            "type": "string"
          },
          "createdById": {
            "description": "Id of the user who created the organization",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "createdByName": {
            "description": "Name of the user who created the organization",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "isActive": {
            "description": "Is organization active",
            "readOnly": true,
            "type": "boolean"
          },
          "name": {
            "description": "The name of the resource",
            "type": "string"
          },
          "updated": {
            "description": "The time when the resource was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "isActive",
          "createdByName",
          "createdById"
        ],
        "title": "OrganizationMetadataSchema",
        "type": "object"
      },
      "OrganizationPatchSchema": {
        "properties": {
          "spec": {
            "$ref": "#/components/schemas/OrganizationSpecSchema",
            "description": "Specification"
          }
        },
        "required": [
          "spec"
        ],
        "title": "OrganizationPatchSchema",
        "type": "object"
      },
      "OrganizationSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "readOnly": true,
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/OrganizationMetadataSchema",
            "description": "Metadata",
            "readOnly": true
          },
          "spec": {
            "$ref": "#/components/schemas/OrganizationSpecSchema",
            "description": "Specification"
          }
        },
        "required": [
          "spec"
        ],
        "title": "OrganizationSchema",
        "type": "object"
      },
      "OrganizationSpecSchema": {
        "properties": {
          "legalEntityAddress": {
            "description": "The legal address of the purchaser.",
            "nullable": true,
            "type": "string"
          },
          "legalEntityContactEmail": {
            "description": "The primary officer's email address.",
            "nullable": true,
            "type": "string"
          },
          "legalEntityName": {
            "description": "The legal entity name of the purchaser.",
            "nullable": true,
            "type": "string"
          },
          "legalEntityOfficer": {
            "description": "The name of the primary officer of the purchaser.",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the organization",
            "type": "string"
          }
        },
        "title": "OrganizationSpecSchema",
        "type": "object"
      },
      "OrganizationSpecSchema_v1": {
        "properties": {
          "id": {
            "description": "ID of the organization.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the organization.",
            "example": "MediaKind",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "OrganizationSpecSchema_v1",
        "type": "object"
      },
      "PaginationInfoSchema": {
        "properties": {
          "end": {
            "description": "Position of the last item in the list",
            "readOnly": true,
            "type": "integer"
          },
          "records": {
            "description": "Total number of items returned in the list",
            "readOnly": true,
            "type": "integer"
          },
          "start": {
            "description": "Position of the first item in the list",
            "readOnly": true,
            "type": "integer"
          },
          "total": {
            "description": "Total number of items in the project",
            "readOnly": true,
            "type": "integer"
          }
        },
        "required": [
          "start",
          "end",
          "records",
          "total"
        ],
        "title": "PaginationInfoSchema",
        "type": "object"
      },
      "PaymentMethodAWSSpec": {
        "properties": {
          "allowedOrganizations": {
            "description": "If set, only these organization IDs are allowed to use this payment method.",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "autoPurchaseBeamLicenses": {
            "description": "Specifies whether Beam usage should be billed through monthly charges (true) or by the minute (false).",
            "readOnly": true,
            "type": "boolean"
          },
          "awsAccountId": {
            "description": "The AWS account ID.",
            "type": "string"
          },
          "awsCustomerId": {
            "description": "Unique AWS account identifier specific to AWS SaaS Marketplace.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "awsOfferId": {
            "description": "Unique AWS private offer identifier.",
            "type": "string"
          },
          "awsProductCode": {
            "description": "The MK.IO product code in the AWS SaaS Marketplace.",
            "type": "string"
          },
          "awsStatus": {
            "description": "",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "notes": {
            "description": "Note to the customer.",
            "maxLength": 256,
            "type": "string"
          },
          "productPublicationName": {
            "description": "The name of the product publication that details the pricing for this payment method.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Payment method type. Defaults to `direct` if not specified.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "autoPurchaseBeamLicenses",
          "productPublicationName"
        ],
        "title": "PaymentMethodAWSSpec",
        "type": "object"
      },
      "PaymentMethodAssignmentSchema": {
        "properties": {
          "paymentMethodId": {
            "description": "Payment Method identity",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "paymentMethodId"
        ],
        "title": "PaymentMethodAssignmentSchema",
        "type": "object"
      },
      "PaymentMethodAzureSpec": {
        "properties": {
          "allowedOrganizations": {
            "description": "If set, only these organization IDs are allowed to use this payment method.",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "autoPurchaseBeamLicenses": {
            "description": "Specifies whether Beam usage should be billed through monthly charges (true) or by the minute (false).",
            "readOnly": true,
            "type": "boolean"
          },
          "azureOfferId": {
            "description": "The Azure offer ID.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "azurePlanName": {
            "description": "The Azure plan name.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "azurePrivateOfferId": {
            "description": "The Partner Center private offer UUID. Present only for azure_private_offer payment methods.",
            "format": "uuid",
            "type": "string"
          },
          "azureSaasSubscriptionAutoRenew": {
            "description": "",
            "nullable": true,
            "readOnly": true,
            "type": "boolean"
          },
          "azureSaasSubscriptionEnd": {
            "description": "",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "azureSaasSubscriptionId": {
            "description": "",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "azureSaasSubscriptionName": {
            "description": "",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "azureSaasSubscriptionStart": {
            "description": "",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "azureSaasSubscriptionStatus": {
            "description": "",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "notes": {
            "description": "Note to the customer.",
            "maxLength": 256,
            "type": "string"
          },
          "productPublicationName": {
            "description": "The name of the product publication that details the pricing for this payment method.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Payment method type. Defaults to `direct` if not specified.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "autoPurchaseBeamLicenses",
          "productPublicationName"
        ],
        "title": "PaymentMethodAzureSpec",
        "type": "object"
      },
      "PaymentMethodDirectSpec": {
        "properties": {
          "allowedOrganizations": {
            "description": "If set, only these organization IDs are allowed to use this payment method.",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "autoPurchaseBeamLicenses": {
            "description": "Specifies whether Beam usage should be billed through monthly charges (true) or by the minute (false).",
            "readOnly": true,
            "type": "boolean"
          },
          "notes": {
            "description": "Note to the customer.",
            "maxLength": 256,
            "type": "string"
          },
          "productPublicationName": {
            "description": "The name of the product publication that details the pricing for this payment method.",
            "readOnly": true,
            "type": "string"
          },
          "redeemedBy": {
            "description": "The email of the user who redeemed this sales order.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "salesOrderNumber": {
            "description": "The document number from NetSuite, SOxxx",
            "type": "string"
          },
          "status": {
            "description": "The status of the purchase order in MediaKind's systems.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Payment method type. Defaults to `direct` if not specified.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "autoPurchaseBeamLicenses",
          "productPublicationName"
        ],
        "title": "PaymentMethodDirectSpec",
        "type": "object"
      },
      "PaymentMethodListSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "Method list.",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodSummarySchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "PaymentMethodListSchema",
        "type": "object"
      },
      "PaymentMethodMetadata": {
        "properties": {
          "created": {
            "description": "The time when the resource was created",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "ID of the user who created the resource",
            "format": "uuid",
            "type": "string"
          },
          "createdByEmail": {
            "description": "Email of the user who created the resource",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the resource",
            "type": "string"
          },
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "organizationId": {
            "description": "The ID of the organization this Payment Method belongs to.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "organizationId"
        ],
        "title": "PaymentMethodMetadata",
        "type": "object"
      },
      "PaymentMethodPatchEntry": {
        "properties": {
          "op": {
            "description": "Operation",
            "enum": [
              "add",
              "remove",
              "replace",
              "stringReplace",
              "numberReplace"
            ],
            "type": "string"
          },
          "path": {
            "description": "Path",
            "type": "string"
          },
          "search": {
            "description": "Search string for 'stringReplace' and 'numberReplace' operations.  \n'numberReplace' replaces with JSON number type but only when the search string matches the entire value. I.e \"audio_pid\" would be replaced with 50, not \"50\".",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/AnyValue",
            "description": "Value"
          }
        },
        "required": [
          "op",
          "path"
        ],
        "title": "PaymentMethodPatchEntry",
        "type": "object"
      },
      "PaymentMethodRelated": {
        "properties": {
          "projects": {
            "description": "List of project names which are billed using this payment method.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "projects"
        ],
        "title": "PaymentMethodRelated",
        "type": "object"
      },
      "PaymentMethodStatus": {
        "properties": {
          "isActive": {
            "description": "Is payment method active",
            "type": "boolean"
          },
          "termsAndConditionsAccepted": {
            "description": "Whether the Terms & Conditions of this payment method have been accepted.",
            "type": "boolean"
          }
        },
        "required": [
          "isActive",
          "termsAndConditionsAccepted"
        ],
        "title": "PaymentMethodStatus",
        "type": "object"
      },
      "PaymentMethodSummarySchema": {
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/PaymentMethodMetadata",
            "description": "Metadata."
          },
          "related": {
            "$ref": "#/components/schemas/PaymentMethodRelated",
            "description": "Related data."
          },
          "spec": {
            "description": "Specification.",
            "discriminator": {
              "mapping": {
                "aws": "#/components/schemas/PaymentMethodAWSSpec",
                "azure": "#/components/schemas/PaymentMethodAzureSpec",
                "direct": "#/components/schemas/PaymentMethodDirectSpec"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodAzureSpec"
              },
              {
                "$ref": "#/components/schemas/PaymentMethodAWSSpec"
              },
              {
                "$ref": "#/components/schemas/PaymentMethodDirectSpec"
              }
            ]
          },
          "status": {
            "$ref": "#/components/schemas/PaymentMethodStatus",
            "description": "Status."
          }
        },
        "required": [
          "spec"
        ],
        "title": "PaymentMethodSummarySchema",
        "type": "object"
      },
      "PaymentsMethodRateCardSchema": {
        "properties": {
          "kind": {
            "description": "The type of the resource.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/RateCardMetadata",
            "description": "Metadata pertaining to creation and last modification of the resource."
          },
          "spec": {
            "$ref": "#/components/schemas/RateCardSpec",
            "description": "The rate card specification."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "PaymentsMethodRateCardSchema",
        "type": "object"
      },
      "ProfileGetSchema": {
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/UserMetadata",
            "description": "Metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/UserProfileSpec",
            "description": "Specification."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "ProfileGetSchema",
        "type": "object"
      },
      "ProfileGetSchema_v1": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/UserMetadata",
            "description": "Metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/UserProfileSpec_v1",
            "description": "Specification."
          }
        },
        "required": [
          "kind",
          "metadata",
          "spec"
        ],
        "title": "ProfileGetSchema_v1",
        "type": "object"
      },
      "ProfilePatchSchema_v1": {
        "properties": {
          "spec": {
            "$ref": "#/components/schemas/UserProfileSpec_v1",
            "description": "Specification."
          }
        },
        "required": [
          "spec"
        ],
        "title": "ProfilePatchSchema_v1",
        "type": "object"
      },
      "ProfilePutSchema": {
        "properties": {
          "spec": {
            "$ref": "#/components/schemas/UserProfileSpec",
            "description": "Specification."
          }
        },
        "required": [
          "spec"
        ],
        "title": "ProfilePutSchema",
        "type": "object"
      },
      "ProjectCreateSchema": {
        "properties": {
          "displayName": {
            "description": "Project display name.",
            "type": "string"
          },
          "locationName": {
            "description": "The MK.IO location where this project's resources should be created.",
            "type": "string"
          },
          "paymentMethodId": {
            "description": "The payment method to use for this project.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "locationName",
          "paymentMethodId"
        ],
        "title": "ProjectCreateSchema",
        "type": "object"
      },
      "ProjectGetSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ProjectMetadataSchema",
            "description": "Metadata.",
            "readOnly": true
          },
          "spec": {
            "$ref": "#/components/schemas/ProjectSpecSchema",
            "description": "Specification."
          }
        },
        "required": [
          "spec"
        ],
        "title": "ProjectGetSchema",
        "type": "object"
      },
      "ProjectInfoSchema": {
        "properties": {
          "id": {
            "description": "Project ID",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Project name",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "ProjectInfoSchema",
        "type": "object"
      },
      "ProjectListSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "List of projects the user has access to within this organization.",
            "items": {
              "$ref": "#/components/schemas/ProjectGetSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "ProjectListSchema",
        "type": "object"
      },
      "ProjectMetadataCloudSchema": {
        "properties": {
          "displayName": {
            "description": "The display name of the cloud.",
            "example": "Azure",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the cloud.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The unique name of the cloud.",
            "example": "azure",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name",
          "displayName"
        ],
        "title": "ProjectMetadataCloudSchema",
        "type": "object"
      },
      "ProjectMetadataSchema": {
        "properties": {
          "cloud": {
            "$ref": "#/components/schemas/ProjectMetadataCloudSchema",
            "description": "Cloud in which the project is hosted.",
            "readOnly": true
          },
          "created": {
            "description": "The time when the resource was created",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "ID of the user who created the resource",
            "format": "uuid",
            "type": "string"
          },
          "createdByEmail": {
            "description": "Email of the user who created the resource",
            "type": "string"
          },
          "createdById": {
            "description": "ID of the user who created the project.",
            "format": "uuid",
            "type": "string"
          },
          "createdByName": {
            "description": "Name of the user who created the project.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the resource",
            "type": "string"
          },
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "type": "string"
          },
          "updated": {
            "description": "The time when the resource was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "createdByName",
          "createdById",
          "cloud"
        ],
        "title": "ProjectMetadataSchema",
        "type": "object"
      },
      "ProjectPatchMetadataSchema": {
        "properties": {
          "displayName": {
            "description": "New display name of the project.",
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          }
        },
        "title": "ProjectPatchMetadataSchema",
        "type": "object"
      },
      "ProjectPatchSchema": {
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/ProjectPatchMetadataSchema",
            "description": "Metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/ProjectPatchSpecSchema",
            "description": "Specification."
          }
        },
        "title": "ProjectPatchSchema",
        "type": "object"
      },
      "ProjectPatchSpecSchema": {
        "properties": {
          "isActive": {
            "description": "Is project active?",
            "type": "boolean"
          },
          "isHidden": {
            "description": "Is project hidden?",
            "type": "boolean"
          }
        },
        "title": "ProjectPatchSpecSchema",
        "type": "object"
      },
      "ProjectSpecSchema": {
        "properties": {
          "assignedPaymentMethodId": {
            "description": "ID of the payment method assigned to the project.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "displayName": {
            "description": "Display name of the project.",
            "type": "string"
          },
          "isActive": {
            "description": "Is project active.",
            "type": "boolean"
          },
          "locationDisplayName": {
            "description": "Display name of the location the project is in.",
            "type": "string"
          },
          "locationId": {
            "description": "ID of the location the project is in.",
            "format": "uuid",
            "type": "string"
          },
          "locationName": {
            "description": "Name of the location the project is in.",
            "type": "string"
          },
          "name": {
            "description": "Name of the project.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "displayName",
          "isActive",
          "locationId",
          "locationName",
          "assignedPaymentMethodId"
        ],
        "title": "ProjectSpecSchema",
        "type": "object"
      },
      "ProjectUsageReportMeterData": {
        "properties": {
          "family": {
            "description": "The family that this solution belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "meterName": {
            "description": "The meter name.",
            "readOnly": true,
            "type": "string"
          },
          "meterUnitName": {
            "description": "The meter unit name.",
            "readOnly": true,
            "type": "string"
          },
          "quantity": {
            "description": "The number of units accrued on this date.",
            "readOnly": true,
            "type": "number"
          },
          "solution": {
            "description": "The solution that this meter belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "unit": {
            "description": "The unit that this meter is reported in, e.g. 'gigabytes' or 'minutes'.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meterName",
          "meterUnitName",
          "unit",
          "solution",
          "family",
          "quantity"
        ],
        "title": "ProjectUsageReportMeterData",
        "type": "object"
      },
      "ProjectUsageReportSchema": {
        "properties": {
          "supplemental": {
            "$ref": "#/components/schemas/ProjectUsageReportSupplementalData",
            "description": "Metadata pertaining to the query.",
            "readOnly": true
          },
          "value": {
            "description": "The usage data per day per meter",
            "items": {
              "$ref": "#/components/schemas/ProjectUsageReportMeterData"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "ProjectUsageReportSchema",
        "type": "object"
      },
      "ProjectUsageReportSupplementalData": {
        "properties": {
          "end": {
            "description": "The end date of the query.",
            "readOnly": true,
            "type": "string"
          },
          "project": {
            "description": "The name of the project.",
            "readOnly": true,
            "type": "string"
          },
          "records": {
            "description": "The number of result records returned.",
            "readOnly": true,
            "type": "integer"
          },
          "start": {
            "description": "The start date of the query.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "records",
          "start",
          "end",
          "project"
        ],
        "title": "ProjectUsageReportSupplementalData",
        "type": "object"
      },
      "PublicKeysListSchema": {
        "properties": {
          "keys": {
            "description": "List of public keys in JWK format.",
            "example": [
              {
                "e": "...",
                "key_ops": [
                  "verify"
                ],
                "kid": "<TIMESTAMP>",
                "kty": "RSA",
                "n": "..."
              }
            ],
            "items": {},
            "type": "array"
          }
        },
        "required": [
          "keys"
        ],
        "title": "PublicKeysListSchema",
        "type": "object"
      },
      "RateCardEntrySchema": {
        "properties": {
          "family": {
            "description": "The family of the rate card entry.",
            "example": "Video Processing",
            "readOnly": true,
            "type": "string"
          },
          "prices": {
            "description": "A list of meter prices associated with family and solution.",
            "example": [
              {
                "displayName": "Advanced SD",
                "name": "advanced_sd(video_encoding_ondemand)",
                "price": 0.02,
                "sku": "AAS1010154",
                "unit": "minutes"
              },
              {
                "displayName": "Advanced HD",
                "name": "advanced_hd(video_encoding_ondemand)",
                "price": 0.04,
                "sku": "AAS1010155",
                "unit": "minutes"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/RateCardPriceSchema"
            },
            "readOnly": true,
            "type": "array"
          },
          "solution": {
            "description": "The solution associated with the rate card entry.",
            "example": "VOD Encoding",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "family",
          "solution",
          "prices"
        ],
        "title": "RateCardEntrySchema",
        "type": "object"
      },
      "RateCardMetadata": {
        "properties": {
          "isPrivateOffer": {
            "description": "Whether this rate card is a private offer to be used by one customer only.",
            "type": "boolean"
          },
          "paymentMethodId": {
            "description": "Unique ID for this Payment Method.",
            "format": "uuid",
            "type": "string"
          },
          "productPublicationId": {
            "description": "Unique ID for this Rate Card.",
            "format": "uuid",
            "type": "string"
          },
          "productPublicationName": {
            "description": "Name of this Rate Card.",
            "type": "string"
          }
        },
        "required": [
          "paymentMethodId",
          "productPublicationId",
          "productPublicationName",
          "isPrivateOffer"
        ],
        "title": "RateCardMetadata",
        "type": "object"
      },
      "RateCardPriceSchema": {
        "properties": {
          "displayName": {
            "description": "The display name of the meter.",
            "example": "Advanced SD",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Meter name.",
            "example": "advanced_sd(video_encoding_ondemand)",
            "readOnly": true,
            "type": "string"
          },
          "price": {
            "description": "The price per unit for the meter.",
            "example": 0.02,
            "readOnly": true,
            "type": "number"
          },
          "sku": {
            "description": "The SKU identifier for the meter.",
            "example": "AAS1010154",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "unit": {
            "description": "The unit of measurement for the meter.",
            "example": "minutes",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name",
          "displayName",
          "unit",
          "sku",
          "price"
        ],
        "title": "RateCardPriceSchema",
        "type": "object"
      },
      "RateCardSpec": {
        "properties": {
          "currency": {
            "description": "The currency for the prices in the rate card.",
            "example": "USD",
            "type": "string"
          },
          "rateCard": {
            "description": "Rate card for this payment method.",
            "example": [
              {
                "family": "Video Processing",
                "prices": [
                  {
                    "displayName": "Advanced SD",
                    "name": "advanced_sd(video_encoding_ondemand)",
                    "price": 0.02,
                    "sku": "AAS1010154",
                    "unit": "minutes"
                  },
                  {
                    "displayName": "Advanced HD",
                    "name": "advanced_hd(video_encoding_ondemand)",
                    "price": 0.04,
                    "sku": "AAS1010155",
                    "unit": "minutes"
                  }
                ],
                "solution": "VOD Encoding"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/RateCardEntrySchema"
            },
            "type": "array"
          }
        },
        "required": [
          "currency",
          "rateCard"
        ],
        "title": "RateCardSpec",
        "type": "object"
      },
      "RevokedKeyListSchema": {
        "properties": {
          "revokedTokens": {
            "description": "List of token IDs that are revoked.",
            "example": [
              "e90ee585-1169-4888-b361-11fb446d10e0",
              "491d6f8b-68eb-4e80-a1aa-88c01d0f20e5"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "revokedTokens"
        ],
        "title": "RevokedKeyListSchema",
        "type": "object"
      },
      "RoleCapabilitySchema": {
        "properties": {
          "capability": {
            "description": "The name of the capability.",
            "type": "string"
          }
        },
        "required": [
          "capability"
        ],
        "title": "RoleCapabilitySchema",
        "type": "object"
      },
      "RoleGetSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/RoleMetadataSchema",
            "description": "Role metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/RoleSpecSchema",
            "description": "Role specification."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "RoleGetSchema",
        "type": "object"
      },
      "RoleListSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "value": {
            "description": "List of roles.",
            "items": {
              "$ref": "#/components/schemas/RoleGetSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "kind",
          "value"
        ],
        "title": "RoleListSchema",
        "type": "object"
      },
      "RoleMetadataSchema": {
        "properties": {
          "categories": {
            "description": "Some capabilities apply to resources at the organization level, some apply only at the project level.\nThis list suggests which categories of scope this role should be combined with.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "type": "string"
          }
        },
        "required": [
          "id",
          "categories"
        ],
        "title": "RoleMetadataSchema",
        "type": "object"
      },
      "RoleSpecSchema": {
        "properties": {
          "capabilities": {
            "description": "List of capabilities.",
            "items": {
              "$ref": "#/components/schemas/RoleCapabilitySchema"
            },
            "type": "array"
          },
          "description": {
            "description": "A description of the role.",
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "description"
        ],
        "title": "RoleSpecSchema",
        "type": "object"
      },
      "ScopeGetSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ScopeMetadataSchema",
            "description": "Scope metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/ScopeSpecSchema",
            "description": "Scope specification."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "ScopeGetSchema",
        "type": "object"
      },
      "ScopeListSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "value": {
            "description": "List of scopes.",
            "items": {
              "$ref": "#/components/schemas/ScopeGetSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "kind"
        ],
        "title": "ScopeListSchema",
        "type": "object"
      },
      "ScopeMetadataSchema": {
        "properties": {
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "ScopeMetadataSchema",
        "type": "object"
      },
      "ScopeResourceSchema": {
        "properties": {
          "id": {
            "description": "The id of the resource.",
            "format": "uuid",
            "type": "string"
          },
          "type": {
            "description": "The type of the resource.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "title": "ScopeResourceSchema",
        "type": "object"
      },
      "ScopeSpecSchema": {
        "properties": {
          "description": {
            "description": "A description of the scope.",
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "resources": {
            "description": "List of resources.",
            "items": {
              "$ref": "#/components/schemas/ScopeResourceSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "description"
        ],
        "title": "ScopeSpecSchema",
        "type": "object"
      },
      "SupplementalData": {
        "properties": {
          "download": {
            "description": "Whether browser was indicated to download file",
            "readOnly": true,
            "type": "boolean"
          },
          "end": {
            "description": "The end date of the query.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          },
          "filters": {
            "$ref": "#/components/schemas/SupplementalFiltersData",
            "description": "The filters applied to the query.",
            "readOnly": true
          },
          "format": {
            "description": "The output format. Either csv or json.",
            "readOnly": true,
            "type": "string"
          },
          "granularity": {
            "description": "The time bucket used for aggregation.",
            "readOnly": true,
            "type": "string"
          },
          "groupBy": {
            "description": "The list of fields that the results are grouped by.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "records": {
            "description": "The number of result records returned.",
            "readOnly": true,
            "type": "integer"
          },
          "start": {
            "description": "The start date of the query.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "records",
          "filters",
          "start",
          "end",
          "format",
          "download",
          "granularity",
          "groupBy"
        ],
        "title": "SupplementalData",
        "type": "object"
      },
      "SupplementalFiltersData": {
        "properties": {
          "meterNames": {
            "description": "Meter names the results were filtered to.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "paymentMethodIds": {
            "description": "Payment method IDs the results were filtered to.",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "projectNames": {
            "description": "Project names the results were filtered to.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "required": [
          "paymentMethodIds",
          "projectNames",
          "meterNames"
        ],
        "title": "SupplementalFiltersData",
        "type": "object"
      },
      "TeamGetSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "readOnly": true,
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/TeamMetadataSchema",
            "description": "Team metadata.",
            "readOnly": true
          },
          "spec": {
            "$ref": "#/components/schemas/TeamSpecSchemaRead",
            "description": "Team specification."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "TeamGetSchema",
        "type": "object"
      },
      "TeamListSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "value": {
            "description": "List of teams.",
            "items": {
              "$ref": "#/components/schemas/TeamGetSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "kind",
          "value"
        ],
        "title": "TeamListSchema",
        "type": "object"
      },
      "TeamMemberSchemaCreate": {
        "properties": {
          "isTeamAdmin": {
            "description": "Does this user have the ability to edit this team",
            "type": "boolean"
          }
        },
        "required": [
          "isTeamAdmin"
        ],
        "title": "TeamMemberSchemaCreate",
        "type": "object"
      },
      "TeamMemberSchemaRead": {
        "properties": {
          "email": {
            "description": "The email address of the team member",
            "readOnly": true,
            "type": "string"
          },
          "isTeamAdmin": {
            "description": "Does this user have the ability to edit this team",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the team member",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "isTeamAdmin",
          "name",
          "email"
        ],
        "title": "TeamMemberSchemaRead",
        "type": "object"
      },
      "TeamMetadataSchema": {
        "properties": {
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "TeamMetadataSchema",
        "type": "object"
      },
      "TeamPutSchema": {
        "properties": {
          "spec": {
            "$ref": "#/components/schemas/TeamSpecSchemaCreate",
            "description": "Team specification."
          }
        },
        "required": [
          "spec"
        ],
        "title": "TeamPutSchema",
        "type": "object"
      },
      "TeamScopeSchema": {
        "properties": {
          "roles": {
            "description": "The names of the roles.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "roles"
        ],
        "title": "TeamScopeSchema",
        "type": "object"
      },
      "TeamSpecSchemaCreate": {
        "properties": {
          "description": {
            "description": "A description of the team.",
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "members": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TeamMemberSchemaCreate"
            },
            "description": "The list of members.",
            "example": {
              "user-id": {
                "isTeamAdmin": true
              }
            },
            "type": "object"
          },
          "scopes": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TeamScopeSchema"
            },
            "description": "The set of scopes this team has access to, and the roles on each.",
            "example": {
              "scopeName": {
                "roles": [
                  "roleName",
                  "roleName2"
                ]
              }
            },
            "type": "object"
          }
        },
        "title": "TeamSpecSchemaCreate",
        "type": "object"
      },
      "TeamSpecSchemaRead": {
        "properties": {
          "description": {
            "description": "A description of the team.",
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "members": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TeamMemberSchemaRead"
            },
            "description": "The list of members.",
            "example": {
              "user-id": {
                "isTeamAdmin": true
              }
            },
            "type": "object"
          },
          "scopes": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TeamScopeSchema"
            },
            "description": "The set of scopes this team has access to, and the roles on each.",
            "example": {
              "scopeName": {
                "roles": [
                  "roleName",
                  "roleName2"
                ]
              }
            },
            "type": "object"
          }
        },
        "title": "TeamSpecSchemaRead",
        "type": "object"
      },
      "UserBriefListSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "value": {
            "description": "List of users",
            "items": {
              "$ref": "#/components/schemas/UserBriefSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "kind",
          "value"
        ],
        "title": "UserBriefListSchema",
        "type": "object"
      },
      "UserBriefSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/UserMetadata",
            "description": "Metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/UserBriefSpec",
            "description": "Specification."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "UserBriefSchema",
        "type": "object"
      },
      "UserBriefSpec": {
        "properties": {
          "avatar": {
            "description": "Avatar.",
            "maxLength": 200,
            "readOnly": true,
            "type": "string"
          },
          "email": {
            "description": "Contact email address",
            "maxLength": 1024,
            "minLength": 1,
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Full name.",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name",
          "email",
          "avatar"
        ],
        "title": "UserBriefSpec",
        "type": "object"
      },
      "UserMetadata": {
        "properties": {
          "id": {
            "description": "The unique identifier of the user.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "UserMetadata",
        "type": "object"
      },
      "UserOrganizationMetadataSchema": {
        "properties": {
          "id": {
            "description": "ID of the organization.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the organization.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name",
          "id"
        ],
        "title": "UserOrganizationMetadataSchema",
        "type": "object"
      },
      "UserOrganizationPatchSchema": {
        "properties": {
          "spec": {
            "$ref": "#/components/schemas/UserOrganizationSpecSchema",
            "description": "Specification."
          }
        },
        "title": "UserOrganizationPatchSchema",
        "type": "object"
      },
      "UserOrganizationPendingInviteSchema": {
        "properties": {
          "comment": {
            "description": "Comment from the inviter.",
            "readOnly": true,
            "type": "string"
          },
          "invitedBy": {
            "description": "Email of the user who sent the invite.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "state": {
            "description": "State of the invite.",
            "enum": [
              "accepted",
              "pending"
            ],
            "type": "string"
          }
        },
        "required": [
          "invitedBy",
          "comment",
          "state"
        ],
        "title": "UserOrganizationPendingInviteSchema",
        "type": "object"
      },
      "UserOrganizationSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/UserOrganizationMetadataSchema",
            "description": "Metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/UserOrganizationSpecSchema",
            "description": "Specification."
          }
        },
        "title": "UserOrganizationSchema",
        "type": "object"
      },
      "UserOrganizationSpecSchema": {
        "properties": {
          "invite": {
            "$ref": "#/components/schemas/UserOrganizationPendingInviteSchema",
            "description": "Pending invitation to work with this organization."
          }
        },
        "title": "UserOrganizationSpecSchema",
        "type": "object"
      },
      "UserOrganizationsListSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "value": {
            "description": "List of organizations the user can access or has been invited to.",
            "items": {
              "$ref": "#/components/schemas/UserOrganizationSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "kind",
          "value"
        ],
        "title": "UserOrganizationsListSchema",
        "type": "object"
      },
      "UserProfileSpec": {
        "properties": {
          "avatar": {
            "description": "Avatar.",
            "maxLength": 200,
            "readOnly": true,
            "type": "string"
          },
          "company": {
            "description": "Company.",
            "maxLength": 1024,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "contact_email": {
            "description": "Contact email address",
            "maxLength": 1024,
            "minLength": 1,
            "readOnly": true,
            "type": "string"
          },
          "country": {
            "description": "Country.",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "customer_id": {
            "description": "Primary customer relationship.",
            "readOnly": true,
            "type": "string"
          },
          "customers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Customers.",
            "example": {
              "customer_id": "customer_name"
            },
            "readOnly": true,
            "type": "object"
          },
          "is_active": {
            "description": "Is this user active?",
            "readOnly": true,
            "type": "boolean"
          },
          "is_admin": {
            "description": "Is this user a global administrator?",
            "readOnly": true,
            "type": "boolean"
          },
          "jobrole": {
            "description": "Job Role.",
            "maxLength": 1024,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Full name.",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "phonenumber": {
            "description": "Phone number including international dialling code",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "signup_problem": {
            "description": "Issues with signing up to MK.IO?",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name",
          "country",
          "company",
          "jobrole",
          "phonenumber",
          "contact_email",
          "avatar",
          "is_admin",
          "is_active",
          "signup_problem",
          "customer_id",
          "customers"
        ],
        "title": "UserProfileSpec",
        "type": "object"
      },
      "UserProfileSpec_v1": {
        "properties": {
          "activeOrganizationId": {
            "description": "Currently selected organization.",
            "readOnly": true,
            "type": "string"
          },
          "avatar": {
            "description": "Avatar.",
            "maxLength": 200,
            "readOnly": true,
            "type": "string"
          },
          "company": {
            "description": "Company.",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "contactEmail": {
            "description": "Contact email address",
            "maxLength": 1024,
            "minLength": 1,
            "readOnly": true,
            "type": "string"
          },
          "country": {
            "description": "Country.",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "features": {
            "additionalProperties": {},
            "description": "Internally managed set of flags indicating access to preview or new features.",
            "readOnly": true,
            "type": "object"
          },
          "isActive": {
            "description": "Is this user active?",
            "readOnly": true,
            "type": "boolean"
          },
          "jobRole": {
            "description": "Job Role.",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "loginEmail": {
            "description": "Email address used for login",
            "maxLength": 1024,
            "minLength": 1,
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Full name.",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "phoneNumber": {
            "description": "Phone number including international dialling code",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "contactEmail",
          "loginEmail",
          "avatar",
          "isActive",
          "activeOrganizationId",
          "features"
        ],
        "title": "UserProfileSpec_v1",
        "type": "object"
      },
      "UserTokenListSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "value": {
            "description": "Token list.",
            "items": {
              "$ref": "#/components/schemas/UserTokenSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "kind",
          "value"
        ],
        "title": "UserTokenListSchema",
        "type": "object"
      },
      "UserTokenMetadataSchema": {
        "properties": {
          "JWT": {
            "description": "Generated token.  We do not store this token, so you will not be able to see it again.  Please copy it and keep it securely.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "ID of token.",
            "format": "uuid",
            "type": "string"
          },
          "type": {
            "description": "Token type.",
            "enum": [
              "login",
              "full-access",
              "restricted",
              "ephemeral"
            ],
            "example": "full-access",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "title": "UserTokenMetadataSchema",
        "type": "object"
      },
      "UserTokenSchema": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/UserTokenMetadataSchema",
            "description": "Token metadata."
          },
          "spec": {
            "$ref": "#/components/schemas/UserTokenSpecSchema",
            "description": "Token spec."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "UserTokenSchema",
        "type": "object"
      },
      "UserTokenSpecSchema": {
        "properties": {
          "description": {
            "description": "Description of the token. Max 128 characters.",
            "maxLength": 128,
            "minLength": 0,
            "type": "string"
          },
          "expires": {
            "description": "Date token expires.",
            "format": "date-time",
            "type": "string"
          },
          "issued": {
            "description": "Date token was issued.",
            "format": "date-time",
            "type": "string"
          },
          "lastUsed": {
            "description": "Date token was last used on the MK.IO api.",
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "organizationId": {
            "description": "ID of the organization that this token allows access to.",
            "format": "uuid",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "permissions": {
            "additionalProperties": {},
            "description": "The RBAC capabilities assigned to the token when type is 'restricted'",
            "example": {},
            "type": "object"
          },
          "revoked": {
            "description": "Date token was revoked, or null if not revoked.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "revokedBy": {
            "description": "Email of user who revoked this token.",
            "type": "string"
          },
          "user": {
            "description": "Email of user the token was issued for.",
            "type": "string"
          }
        },
        "required": [
          "user",
          "issued",
          "expires",
          "lastUsed",
          "revoked"
        ],
        "title": "UserTokenSpecSchema",
        "type": "object"
      },
      "WebhookEventBriefSchema": {
        "properties": {
          "created": {
            "description": "Time the Event was created.",
            "format": "date-time",
            "type": "string"
          },
          "source": {
            "description": "Path to the resource that triggered the Event.",
            "type": "string"
          },
          "status": {
            "description": "Event send status.",
            "enum": [
              "Pending",
              "Retrying",
              "Failed",
              "Sent"
            ],
            "type": "string"
          },
          "type": {
            "description": "The type of the Event.",
            "enum": [
              "MediaKind.JobStarted",
              "MediaKind.JobFinished",
              "MediaKind.StreamingLocatorCreated",
              "MediaKind.ChannelInstanceStarted",
              "MediaKind.ChannelInstanceStopped",
              "MediaKind.ChannelInstanceError",
              "MediaKind.ScheduledOperationAccepted",
              "MediaKind.ScheduledOperationCompleted",
              "MediaKind.ScheduledOperationError",
              "MediaKind.ScheduledOperationOngoing"
            ],
            "type": "string"
          }
        },
        "required": [
          "created",
          "status",
          "source",
          "type"
        ],
        "title": "WebhookEventBriefSchema",
        "type": "object"
      },
      "WebhookEventListSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of Events for a Webhook rule.",
            "items": {
              "$ref": "#/components/schemas/WebhookEventBriefSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "WebhookEventListSchema",
        "type": "object"
      },
      "WebhookRuleCreateOrUpdateSchema": {
        "properties": {
          "spec": {
            "$ref": "#/components/schemas/WebhookRuleSpecSchema",
            "description": "Webhook rule spec."
          }
        },
        "required": [
          "spec"
        ],
        "title": "WebhookRuleCreateOrUpdateSchema",
        "type": "object"
      },
      "WebhookRuleListResponseSchema": {
        "properties": {
          "value": {
            "description": "A list of Webhook rules",
            "items": {
              "$ref": "#/components/schemas/WebhookRuleSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "value"
        ],
        "title": "WebhookRuleListResponseSchema",
        "type": "object"
      },
      "WebhookRuleMetadataSchema": {
        "properties": {
          "id": {
            "description": "The ID of the webhook.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the webhook. Unique within a project.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "WebhookRuleMetadataSchema",
        "type": "object"
      },
      "WebhookRuleSchema": {
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/WebhookRuleMetadataSchema",
            "description": "Webhook rule metadata.",
            "readOnly": true
          },
          "spec": {
            "$ref": "#/components/schemas/WebhookRuleSpecSchema",
            "description": "Webhook rule spec."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "WebhookRuleSchema",
        "type": "object"
      },
      "WebhookRuleSpecSchema": {
        "properties": {
          "authentication": {
            "$ref": "#/components/schemas/AuthenticationSchema",
            "description": "Authentication details."
          },
          "enabled": {
            "description": "Indicates whether the webhook is enabled.",
            "type": "boolean"
          },
          "events": {
            "description": "List of events that trigger the webhook.",
            "items": {
              "enum": [
                "MediaKind.JobStarted",
                "MediaKind.JobFinished",
                "MediaKind.StreamingLocatorCreated",
                "MediaKind.ChannelInstanceStarted",
                "MediaKind.ChannelInstanceStopped",
                "MediaKind.ChannelInstanceError",
                "MediaKind.ScheduledOperationAccepted",
                "MediaKind.ScheduledOperationCompleted",
                "MediaKind.ScheduledOperationError",
                "MediaKind.ScheduledOperationOngoing"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Headers to include in the webhook request.",
            "type": "object"
          },
          "queryParams": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Query parameters to include in the webhook request.",
            "type": "object"
          },
          "url": {
            "description": "The URL the webhook should call.",
            "type": "string"
          }
        },
        "required": [
          "enabled",
          "url",
          "events"
        ],
        "title": "WebhookRuleSpecSchema",
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "## Overview\nThe MK.IO Management API is the REST API for organization, project, and account administration in MK.IO. It supports governance and operational setup use cases, including managing users/teams/roles/scopes, project and location management, payment methods, webhook rules, usage reporting, and profile/token operations.\n\n## Authentication\nAll endpoints require a bearer token in the `Authorization` header:\n`Authorization: Bearer <your_token>`\n\nYou can create and manage your tokens in your [profile settings](https://app.mk.io/user/profile) under **Your personal API tokens**. Follow the [API tokens guide](https://docs.mediakind.com/mkio/how-to/managing-your-organization/api-tokens) for more information.\n\n## Usage\nBase URL: `https://app.mk.io`\n\nTypical usage pattern:\n- Identify the organization and project context.\n- Manage users, roles, teams, and project settings.\n- Create, rotate, and revoke tokens before calling Media, Infrastructure, or Fleet APIs.\n",
    "title": "MK.IO Management API",
    "version": "0.19.18"
  },
  "openapi": "3.0.2",
  "paths": {
    "/.well-known/jwks.json": {
      "get": {
        "description": "Get all currently valid public keys in JWKS format.\n           \nThe key ID (`kid`) in the JWT headers should match a `kid` in this list.",
        "operationId": "[get]_/.well-known/jwks.json",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicKeysListSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get public keys",
        "tags": [
          "Auth"
        ]
      }
    },
    "/.well-known/revoked.json": {
      "get": {
        "description": "Get a list of revoked token IDs. These will be the ID values found in the `jti` property of the decoded JWT. \n\nIf the `jti` value matches one of the IDs in the returned list then it should be considered as revoked and treated as invalid.",
        "operationId": "[get]_/.well-known/revoked.json",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevokedKeyListSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get revoked token IDs",
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/profile/": {
      "get": {
        "deprecated": true,
        "description": "This endpoint returns the details of the current user.",
        "operationId": "[get]_/api/profile/",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileGetSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get profile",
        "tags": [
          "Your Profile"
        ]
      },
      "put": {
        "deprecated": true,
        "description": "This endpoint allows certain fields within the profile to be updated.",
        "operationId": "[put]_/api/profile/",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfilePutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileGetSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update profile",
        "tags": [
          "Your Profile"
        ]
      }
    },
    "/api/ready": {
      "get": {
        "description": "Get status of the readiness of the server",
        "operationId": "[get]_/api/ready",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Server temporarily unavailable"
          }
        },
        "summary": "Endpoint for readiness-check",
        "tags": [
          "Readiness Check"
        ]
      }
    },
    "/api/v1/locations": {
      "get": {
        "description": "## Listing, Sorting and Filtering Locations\n\nThis endpoint returns the list of locations.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `displayName`, `id`, `name`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for locations to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `cloud/name`, `cloud/region/name`, `displayName`, `id`, `name`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 locations from the list.\n\n`?$orderby=name desc` - Sorts locations by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns locations that match the provided name.",
        "operationId": "[get]_/api/v1/locations",
        "parameters": [
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationListResponseSchema_v1"
                }
              }
            },
            "description": "A list of locations"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List available Locations",
        "tags": [
          "Locations"
        ]
      }
    },
    "/api/v1/locations/{location_name}": {
      "get": {
        "description": "Retrieves the specified Location.",
        "operationId": "[get]_/api/v1/locations/{location_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "location_name",
            "required": true,
            "schema": {
              "title": "Location_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationSchema_v1"
                }
              }
            },
            "description": "Location"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Location",
        "tags": [
          "Locations"
        ]
      }
    },
    "/api/v1/organization": {
      "get": {
        "description": "Returns your active organization.",
        "operationId": "[get]_/api/v1/organization",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get an organization",
        "tags": [
          "Organization"
        ]
      },
      "patch": {
        "description": "Update your organization details.",
        "operationId": "[patch]_/api/v1/organization",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationPatchSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update organization",
        "tags": [
          "Organization"
        ]
      },
      "post": {
        "description": "Create a new Organization.  \nThe user will be added to the newly created Organization.  \nOptionally the legal information can also be entered at this point.  \n  \nNOTE: Organization names are not unique so care must be taken to avoid creating duplicates.",
        "operationId": "[post]_/api/v1/organization",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationCreateSchema"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationSchema"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create an organization",
        "tags": [
          "Organization"
        ]
      }
    },
    "/api/v1/organization/invites": {
      "get": {
        "description": "This endpoint shows the current list of invitations that have been sent by this MK.IO organization and which have not been accepted or declined yet.",
        "operationId": "[get]_/api/v1/organization/invites",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteListSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List pending invites",
        "tags": [
          "User Management"
        ]
      },
      "post": {
        "description": "This endpoint allows you to create a new invitation which will grant a user access to this organization's resources within MK.IO.\n\nYou can include a comment which will be visible against this user's record when they accept the invitation, e.g. \"Contractor for project Delphi\".",
        "operationId": "[post]_/api/v1/organization/invites",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvitePostSchema"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteGetSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create an invite",
        "tags": [
          "User Management"
        ]
      }
    },
    "/api/v1/organization/invites/{invite_id}": {
      "delete": {
        "description": "This endpoint allows you to remove a pending invitation if you change your mind, or if the invitation is wrong.",
        "operationId": "[delete]_/api/v1/organization/invites/{invite_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "invite_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Invite_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Cancel pending invite",
        "tags": [
          "User Management"
        ]
      },
      "get": {
        "description": "This endpoint shows the details of one pending invitation.",
        "operationId": "[get]_/api/v1/organization/invites/{invite_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "invite_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Invite_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteGetSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get one pending invite",
        "tags": [
          "User Management"
        ]
      }
    },
    "/api/v1/organization/paymentMethods": {
      "get": {
        "description": "## Listing, Sorting and Filtering Payment Methods\n\nThis endpoint returns the list of payment methods.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `aws/awsAccountId`, `azure/azureSaasSubscriptionId`, `azure/azureSaasSubscriptionName`, `created`, `createdBy`, `displayName`, `id`, `type`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for payment methods to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `aws/awsAccountId`, `azure/azureSaasSubscriptionId`, `azure/azureSaasSubscriptionName`, `created`, `createdBy`, `createdByEmail`, `createdByName`, `displayName`, `id`, `type`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 payment methods from the list.\n\n`?$orderby=created desc` - Sorts payment methods by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns payment methods created after January 1, 2021.",
        "operationId": "[get]_/api/v1/organization/paymentMethods",
        "parameters": [
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodListSchema"
                }
              }
            },
            "description": "A list of all payment methods"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Payment Methods",
        "tags": [
          "Payment"
        ]
      }
    },
    "/api/v1/organization/paymentMethods/{paymentmethod_id}": {
      "get": {
        "description": "Retrieve details of a single Payment Method",
        "operationId": "[get]_/api/v1/organization/paymentMethods/{paymentmethod_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "paymentmethod_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Paymentmethod_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSummarySchema"
                }
              }
            },
            "description": "A list of all payment methods"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get one Payment Method",
        "tags": [
          "Payment"
        ]
      },
      "patch": {
        "description": "Partially update a payment method using JSON Patch (RFC 6902). Requires `Content-Type: application/json-patch+json`.\n\nThe following field can be updated via `replace` operations:\n- `/metadata/displayName` \u2014 a human-friendly display name (max 256 characters, or `\"\"` to clear).",
        "operationId": "[patch]_/api/v1/organization/paymentMethods/{paymentmethod_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "paymentmethod_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Paymentmethod_Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "examples": {
                "Clear display name": {
                  "summary": "Remove the display name from the payment method.",
                  "value": [
                    {
                      "op": "replace",
                      "path": "/metadata/displayName",
                      "value": ""
                    }
                  ]
                },
                "Set display name": {
                  "summary": "Set a human-friendly display name on the payment method.",
                  "value": [
                    {
                      "op": "replace",
                      "path": "/metadata/displayName",
                      "value": "My Payment Method"
                    }
                  ]
                }
              },
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/PaymentMethodPatchEntry"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSummarySchema"
                }
              }
            },
            "description": "The updated payment method."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Patch Payment Method",
        "tags": [
          "Payment"
        ]
      }
    },
    "/api/v1/organization/paymentMethods/{paymentmethod_id}/acceptTermsAndConditions": {
      "post": {
        "description": "Accept Terms & Conditions for a Payment Method",
        "operationId": "[post]_/api/v1/organization/paymentMethods/{paymentmethod_id}/acceptTermsAndConditions",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "paymentmethod_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Paymentmethod_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Accept Terms & Conditions",
        "tags": [
          "Payment"
        ]
      }
    },
    "/api/v1/organization/paymentMethods/{paymentmethod_id}/rateCard": {
      "get": {
        "description": "Returns ratecard information for the specified payment method.",
        "operationId": "[get]_/api/v1/organization/paymentMethods/{paymentmethod_id}/rateCard",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "paymentmethod_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Paymentmethod_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsMethodRateCardSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get ratecard for payment method",
        "tags": [
          "Payment"
        ]
      }
    },
    "/api/v1/organization/reports/usage": {
      "post": {
        "description": "Returns meter-level usage aggregated by set granularity over the specified date range.\n\n- Can be filtered by `projectNames`, `paymentMethodIds` or `meterNames`.\n- Maximum date range depends on granularity: 31 days (`hour`), 1 year (`day`), unlimited (`week`, `month`, `year`).\n- Day boundaries use UTC; `startDate` is inclusive and `endDate` is exclusive (previously also inclusive).\n- To get a monthly report for January, use `startDate=2026-01-01` and `endDate=2026-02-01`.\n- The response include `date` and `date_processed` fields. `date` is the time when the usage happened, while `date_processed` is when the usage was ingested into our system and processed for billing purposes.\n- Set `filterOnReportedDate=true` to filter by `date_processed` instead of `date`. This might include usage that occurred before the `startDate` if it was processed during the date range.\n- Set `format=csv` and `download=true` to receive a file download.",
        "operationId": "[post]_/api/v1/organization/reports/usage",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "Billing CSV download": {
                  "summary": "Download a full month of billing data for a payment method as a CSV file.",
                  "value": {
                    "download": true,
                    "endDate": "2025-04-01",
                    "filterOnReportedDate": true,
                    "format": "csv",
                    "granularity": "hour",
                    "paymentMethodIds": [
                      "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
                    ],
                    "startDate": "2025-03-01"
                  }
                },
                "Hourly breakdown for a specific meter in a project": {
                  "summary": "Hour-by-hour usage for a single meter over a short window.",
                  "value": {
                    "endDate": "2025-04-01",
                    "format": "json",
                    "granularity": "hour",
                    "meterNames": [
                      "video_encoding_ondemand"
                    ],
                    "projectNames": [
                      "my-project"
                    ],
                    "startDate": "2025-03-25"
                  }
                },
                "Monthly rollup by payment method for a year": {
                  "summary": "Monthly usage totals across all projects and payment methods on the organisation.",
                  "value": {
                    "endDate": "2026-01-01",
                    "format": "json",
                    "granularity": "month",
                    "startDate": "2025-01-01"
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/CustomerUsageQueryData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerUsageDataJsonSchema"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/AnyValue"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get usage report",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/organization/roles": {
      "get": {
        "description": "Returns details of all Roles.",
        "operationId": "[get]_/api/v1/organization/roles",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleListSchema"
                }
              }
            },
            "description": "A list of all roles"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Roles",
        "tags": [
          "Roles"
        ]
      }
    },
    "/api/v1/organization/roles/{role_name}": {
      "get": {
        "description": "Returns details of a single Role.",
        "operationId": "[get]_/api/v1/organization/roles/{role_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "role_name",
            "required": true,
            "schema": {
              "title": "Role_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleGetSchema"
                }
              }
            },
            "description": "The role"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get a Role",
        "tags": [
          "Roles"
        ]
      }
    },
    "/api/v1/organization/scopes": {
      "get": {
        "description": "Returns details of all Scopes.",
        "operationId": "[get]_/api/v1/organization/scopes",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScopeListSchema"
                }
              }
            },
            "description": "A list of all scopes"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Scopes",
        "tags": [
          "Scopes"
        ]
      }
    },
    "/api/v1/organization/scopes/{scope_name}": {
      "get": {
        "description": "Returns details of a single Scope.",
        "operationId": "[get]_/api/v1/organization/scopes/{scope_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "scope_name",
            "required": true,
            "schema": {
              "title": "Scope_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScopeGetSchema"
                }
              }
            },
            "description": "The scope"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get a Scope",
        "tags": [
          "Scopes"
        ]
      }
    },
    "/api/v1/organization/teams": {
      "get": {
        "description": "Returns details of all Teams.",
        "operationId": "[get]_/api/v1/organization/teams",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamListSchema"
                }
              }
            },
            "description": "A list of all teams"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Teams",
        "tags": [
          "Teams"
        ]
      }
    },
    "/api/v1/organization/teams/{team_name}": {
      "delete": {
        "description": "Delete the team, including all of its rights.  This will not\n        remove users from your organization.",
        "operationId": "[delete]_/api/v1/organization/teams/{team_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "team_name",
            "required": true,
            "schema": {
              "title": "Team_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted team"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete a Team",
        "tags": [
          "Teams"
        ]
      },
      "get": {
        "description": "Returns details of a single Team",
        "operationId": "[get]_/api/v1/organization/teams/{team_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "team_name",
            "required": true,
            "schema": {
              "title": "Team_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamGetSchema"
                }
              }
            },
            "description": "The team"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get a Team",
        "tags": [
          "Teams"
        ]
      },
      "patch": {
        "description": "Modify a team using a JSON patch format document",
        "operationId": "[patch]_/api/v1/organization/teams/{team_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "team_name",
            "required": true,
            "schema": {
              "title": "Team_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "Add Team Member": {
                  "summary": "Add a new member to a team by ID",
                  "value": [
                    {
                      "op": "add",
                      "path": "/spec/members/{user_id}",
                      "value": {
                        "isTeamAdmin": false
                      }
                    }
                  ]
                },
                "Add a New Right to a Team": {
                  "summary": "Add a new scope/role combination to the team",
                  "value": [
                    {
                      "op": "add",
                      "path": "/spec/scopes/{scopeName}/roles/-",
                      "value": "{roleName}"
                    }
                  ]
                },
                "Promote to Team Admin": {
                  "summary": "Grant a user the ability to change team membership",
                  "value": [
                    {
                      "op": "replace",
                      "path": "/spec/members/{user_id}/isTeamAdmin",
                      "value": true
                    }
                  ]
                },
                "Remove Team Member": {
                  "summary": "Remove a member from a team",
                  "value": [
                    {
                      "op": "remove",
                      "path": "/spec/members/{user_id}"
                    }
                  ]
                },
                "Remove a Role From a Team": {
                  "summary": "Remove the named scope/role combination from this team",
                  "value": [
                    {
                      "op": "remove",
                      "path": "/spec/scopes/{scopeName}/roles/{roleName}"
                    }
                  ]
                },
                "Remove a Scope From a Team": {
                  "summary": "Remove all access to the named scope from this team",
                  "value": [
                    {
                      "op": "remove",
                      "path": "/spec/scopes/{scopeName}"
                    }
                  ]
                }
              },
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/JsonPatchEntry"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamGetSchema"
                }
              }
            },
            "description": "Updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Patch a Team",
        "tags": [
          "Teams"
        ]
      },
      "put": {
        "description": "Create a new team with a unique name, or Edit an existing team.",
        "operationId": "[put]_/api/v1/organization/teams/{team_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "team_name",
            "required": true,
            "schema": {
              "title": "Team_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "001 Create empty Team": {
                  "summary": "Create a new Team with no members or scopes",
                  "value": {
                    "spec": {
                      "description": "A description of the Team",
                      "members": {},
                      "scopes": {}
                    }
                  }
                },
                "002 Create a Team": {
                  "summary": "Create a new Team",
                  "value": {
                    "spec": {
                      "description": "A description of the Team",
                      "members": {
                        "{user_id2}": {
                          "isTeamAdmin": false
                        },
                        "{user_id}": {
                          "isTeamAdmin": true
                        }
                      },
                      "scopes": {
                        "{scope_name}": {
                          "roles": [
                            "{role_name}",
                            "{role_name2}"
                          ]
                        }
                      }
                    }
                  }
                },
                "003 Create a Team for Project read": {
                  "summary": "Create a new Team for read access to a Project called \"myproject\"",
                  "value": {
                    "spec": {
                      "description": "A description of the Team",
                      "members": {
                        "{user_id}": {
                          "isTeamAdmin": false
                        }
                      },
                      "scopes": {
                        "myprojectScope": {
                          "roles": [
                            "reader"
                          ]
                        }
                      }
                    }
                  }
                },
                "004 Create a Team all Project and generic management": {
                  "summary": "Create a new Team all Project access and generic management read capabilities for the Organization",
                  "value": {
                    "spec": {
                      "description": "A description of the Team",
                      "members": {
                        "{user_id}": {
                          "isTeamAdmin": true
                        }
                      },
                      "scopes": {
                        "allProjectsScope": {
                          "roles": [
                            "user"
                          ]
                        },
                        "managementScope": {
                          "roles": [
                            "managementReader"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/TeamPutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamGetSchema"
                }
              }
            },
            "description": "Updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamGetSchema"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or Edit a Team",
        "tags": [
          "Teams"
        ]
      }
    },
    "/api/v1/organization/tokens": {
      "get": {
        "description": "Get a list of all tokens that provide access to this MK.IO organization. Expired tokens will not be listed.",
        "operationId": "[get]_/api/v1/organization/tokens",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserTokenListSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get tokens of all users",
        "tags": [
          "User Management"
        ]
      }
    },
    "/api/v1/organization/tokens/{token_id}": {
      "delete": {
        "description": "Revoke a token by its ID. The ID is the value of the decoded token's `jti` property. The token can belong to any user with access to this MK.IO organization.",
        "operationId": "[delete]_/api/v1/organization/tokens/{token_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "token_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Token_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Revoke a token of a user",
        "tags": [
          "User Management"
        ]
      }
    },
    "/api/v1/organization/users": {
      "get": {
        "description": "This endpoint shows the details of all users with access to this organization in MK.IO.",
        "operationId": "[get]_/api/v1/organization/users",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserBriefListSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List users",
        "tags": [
          "User Management"
        ]
      }
    },
    "/api/v1/organization/users/{user_id}": {
      "delete": {
        "description": "This endpoint allows you to remove a user's access to your organization in MK.IO.\n\nRemoving the user will remove the user from all teams in the organization.\n\nIf the user is registered in the SSO provider for this organization and logs in again they will be re-added to the organization but any specific team memberships will not be re-created.",
        "operationId": "[delete]_/api/v1/organization/users/{user_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "User_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Remove user",
        "tags": [
          "User Management"
        ]
      },
      "get": {
        "description": "This endpoint shows the details of one user.",
        "operationId": "[get]_/api/v1/organization/users/{user_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "User_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserBriefSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get user details",
        "tags": [
          "User Management"
        ]
      }
    },
    "/api/v1/projects": {
      "get": {
        "description": "## Listing, Sorting and Filtering Projects\n\nThis endpoint returns the list of projects.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `assignedPaymentMethodId`, `created`, `createdBy`, `displayName`, `id`, `isActive`, `locationId`, `name`, `updated`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for projects to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `assignedPaymentMethodId`, `created`, `createdBy`, `createdByEmail`, `createdByName`, `displayName`, `id`, `isActive`, `locationId`, `locationName`, `name`, `updated`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 projects from the list.\n\n`?$orderby=name desc` - Sorts projects by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns projects that match the provided name.\n\n\n`?$orderby=created desc` - Sorts projects by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns projects created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects",
        "parameters": [
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          },
          {
            "description": "Shows hidden projects if present.",
            "in": "query",
            "name": "show_hidden",
            "required": false,
            "schema": {
              "title": "Show_Hidden",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectListSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List projects",
        "tags": [
          "Projects"
        ]
      }
    },
    "/api/v1/projects/{project_name}": {
      "get": {
        "description": "Returns a specified project.",
        "operationId": "[get]_/api/v1/projects/{project_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectGetSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get a project",
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "description": "Update project.",
        "operationId": "[patch]_/api/v1/projects/{project_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectPatchSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectGetSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Edit a project",
        "tags": [
          "Projects"
        ]
      },
      "put": {
        "description": "New project.",
        "operationId": "[put]_/api/v1/projects/{project_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectCreateSchema"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectGetSchema"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/api/v1/projects/{project_name}/metricsEndpoint": {
      "get": {
        "description": "Returns the metrics endpoint settings for this project.",
        "operationId": "[get]_/api/v1/projects/{project_name}/metricsEndpoint",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetricsSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get metrics endpoint settings",
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "description": "See [our Grafana dashboard](https://grafana.com/grafana/dashboards/21657-mk-io-metrics-monitor/) documentation for details.\n\nEnable the metrics endpoint for this project by setting `spec.enabled` to `true`.",
        "operationId": "[patch]_/api/v1/projects/{project_name}/metricsEndpoint",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MetricsSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetricsSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update metrics endpoint settings",
        "tags": [
          "Projects"
        ]
      }
    },
    "/api/v1/projects/{project_name}/paymentMethod": {
      "get": {
        "description": "Returns the currently assigned payment method for this project.",
        "operationId": "[get]_/api/v1/projects/{project_name}/paymentMethod",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSummarySchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get assigned payment method",
        "tags": [
          "Projects"
        ]
      },
      "post": {
        "description": "Replace the payment method for this project and activate the project if it is not already active. It is not possible to remove the payment method from a project.",
        "operationId": "[post]_/api/v1/projects/{project_name}/paymentMethod",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodAssignmentSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The payment method was updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Assign payment method",
        "tags": [
          "Projects"
        ]
      }
    },
    "/api/v1/projects/{project_name}/usage": {
      "get": {
        "description": "Get usage data since the start of the month for a specified project.",
        "operationId": "[get]_/api/v1/projects/{project_name}/usage",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectUsageReportSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get project usage data",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/projects/{project_name}/webhook/rules": {
      "get": {
        "description": "",
        "operationId": "[get]_/api/v1/projects/{project_name}/webhook/rules",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookRuleListResponseSchema"
                }
              }
            },
            "description": "A list of webhook rules"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Webhook Rules",
        "tags": [
          "Webhook Rules"
        ]
      }
    },
    "/api/v1/projects/{project_name}/webhook/rules/{rule_name}": {
      "delete": {
        "description": "Delete Webhook Rule",
        "operationId": "[delete]_/api/v1/projects/{project_name}/webhook/rules/{rule_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "rule_name",
            "required": true,
            "schema": {
              "title": "Rule_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook Rule deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete Webhook Rule",
        "tags": [
          "Webhook Rules"
        ]
      },
      "get": {
        "description": "Gets webhook rule by name.",
        "operationId": "[get]_/api/v1/projects/{project_name}/webhook/rules/{rule_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "rule_name",
            "required": true,
            "schema": {
              "title": "Rule_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookRuleSchema"
                }
              }
            },
            "description": "A single Webhook Rule"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Webhook Rule",
        "tags": [
          "Webhook Rules"
        ]
      },
      "put": {
        "description": "Create or Update Webhook Rule.",
        "operationId": "[put]_/api/v1/projects/{project_name}/webhook/rules/{rule_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "rule_name",
            "required": true,
            "schema": {
              "title": "Rule_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookRuleCreateOrUpdateSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookRuleSchema"
                }
              }
            },
            "description": "Webhook Rule was updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookRuleSchema"
                }
              }
            },
            "description": "Webhook Rule was created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or Update Webhook Rule",
        "tags": [
          "Webhook Rules"
        ]
      }
    },
    "/api/v1/projects/{project_name}/webhook/rules/{rule_name}/events": {
      "get": {
        "description": "Get Events processed for the Webhook Rule.",
        "operationId": "[get]_/api/v1/projects/{project_name}/webhook/rules/{rule_name}/events",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "rule_name",
            "required": true,
            "schema": {
              "title": "Rule_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEventListSchema"
                }
              }
            },
            "description": "A single Webhook Rule"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Webhook Events",
        "tags": [
          "Webhook Rules"
        ]
      }
    },
    "/api/v1/user/organizations": {
      "get": {
        "description": "This endpoint return a list of organizations that the user has access to, or is invited to.",
        "operationId": "[get]_/api/v1/user/organizations",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOrganizationsListSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List user's organizations and any associated invitation",
        "tags": [
          "Your Profile"
        ]
      }
    },
    "/api/v1/user/organizations/{organization_id}": {
      "delete": {
        "description": "This endpoint allows the current user to remove their access to a particular MK.IO organization.  This operation\ncan only be reversed by accepting a new invitation from that organization.\n                   \nIf you are still not part of that organization but have a pending invite for it, this endpoint would decline that invitation.",
        "operationId": "[delete]_/api/v1/user/organizations/{organization_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Organization_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Leave an organization/Decline an invite to an organization",
        "tags": [
          "Your Profile"
        ]
      },
      "get": {
        "description": "Get one organization name and state",
        "operationId": "[get]_/api/v1/user/organizations/{organization_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Organization_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOrganizationSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get organization details",
        "tags": [
          "Your Profile"
        ]
      },
      "patch": {
        "description": "The only field that can be modified is the invite state, and that should be set to 'accepted' to accept a 'pending' invitation to\nwork with a new organization. To decline a pending invitation, use the DELETE method instead.",
        "operationId": "[patch]_/api/v1/user/organizations/{organization_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Organization_Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserOrganizationPatchSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOrganizationSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update organization details (to accept an invitation).",
        "tags": [
          "Your Profile"
        ]
      }
    },
    "/api/v1/user/profile": {
      "get": {
        "description": "This endpoint returns the details of the current user.",
        "operationId": "[get]_/api/v1/user/profile",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileGetSchema_v1"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get profile",
        "tags": [
          "Your Profile"
        ]
      },
      "patch": {
        "description": "This endpoint allows certain fields within the profile to be updated.",
        "operationId": "[patch]_/api/v1/user/profile",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfilePatchSchema_v1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileGetSchema_v1"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update profile",
        "tags": [
          "Your Profile"
        ]
      }
    },
    "/api/v1/user/rbac": {
      "get": {
        "description": "This endpoint returns your RBAC capabilities.  Please see our online documentation for more details on the format of this data.",
        "operationId": "[get]_/api/v1/user/rbac",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get RBAC capability data",
        "tags": [
          "Your Profile"
        ]
      }
    },
    "/api/v1/user/tokens": {
      "delete": {
        "description": "Completely logout of the api by revoking all the tokens of the current user, for all organizations",
        "operationId": "[delete]_/api/v1/user/tokens",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Revoke all user tokens",
        "tags": [
          "Your Profile"
        ]
      },
      "get": {
        "description": "Get all non-expired API tokens issued to the current user.",
        "operationId": "[get]_/api/v1/user/tokens",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserTokenListSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get all user tokens",
        "tags": [
          "Your Profile"
        ]
      },
      "post": {
        "description": "Request a new token granting access to the MK.IO API.  There are four types\nof tokens.\n- 'restricted' tokens can have an `expireDate` set to up to a year in the future grant a reduced set\nof capabilities.  Please see our online documentation for a description of how the capabilities are defined.\n- 'login' tokens are short-lived and grant the full user capabilities.\n- 'full-access' tokens can have an `expireDate` set to up to a year in the future and grant the full user capabilities.\n- 'ephemeral' tokens are short-lived and grant a reduced set of capabilities, similar to 'restricted' tokens.\n\nWhere possible you should prefer 'restricted' tokens over 'full-access' tokens to reduce the impact if one is exposed\naccidentally.  \n                           \nAn API token allows access to MK.IO to anyone who has a copy of it - you should treat these like your car keys and keep\nthem safe.",
        "operationId": "[post]_/api/v1/user/tokens",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTokenSchema"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserTokenSchema"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Request a new token",
        "tags": [
          "Your Profile"
        ]
      }
    },
    "/api/v1/user/tokens/{token_id}": {
      "delete": {
        "description": "Revoke a token by its ID. The ID is the value of the decoded token's `jti` property.",
        "operationId": "[delete]_/api/v1/user/tokens/{token_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "token_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Token_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Revoke a token",
        "tags": [
          "Your Profile"
        ]
      },
      "get": {
        "description": "Get a user token by ID.",
        "operationId": "[get]_/api/v1/user/tokens/{token_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "token_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Token_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserTokenSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get a user token by ID",
        "tags": [
          "Your Profile"
        ]
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "servers": [
    {
      "description": "MK.IO API Server",
      "url": "https://app.mk.io/"
    }
  ],
  "tags": [
    {
      "description": "",
      "name": "Auth"
    },
    {
      "description": "Locations represent the physical geographies where MK.IO currently has resources to run your workloads.\n\nLocations can be either generally available (SaaS), or can be restricted to just one organization (Dedicated).",
      "name": "Locations"
    },
    {
      "description": "# Organization\n\nThese APIs allow you to manage your organization.",
      "name": "Organization"
    },
    {
      "description": "# Payment Methods\n\nPayment methods are how an organization is charged for the resources within its projects.\n\nEach project must refer to a payment method in order to perform operations such as starting a\nLiveEvent.",
      "name": "Payment"
    },
    {
      "description": "# Projects\n\nThese APIs allow users to interact with projects.",
      "name": "Projects"
    },
    {
      "description": "# Readiness Check\n\nThis API exposes endpoint to perform server status check.",
      "name": "Readiness Check"
    },
    {
      "description": "# Reports\n\nThis API allows you to view your usage data since the start of the month.",
      "name": "Reports"
    },
    {
      "description": "# Roles\n\nRoles describe sets of capabilities in order to grant rights to teams.\nRoles are currently automatically created and managed for you.",
      "name": "Roles"
    },
    {
      "description": "# Scopes\n\nScopes describe sets of resources in order to grant rights on them to teams.\nScopes are currently automatically created and managed for you.",
      "name": "Scopes"
    },
    {
      "description": "# Teams\n\nTeams provide the mechanism for granting rights to users.\nCertain teams are created and updated for you automatically to simplify user management\nbut you can create additional teams to reflect your business structure.",
      "name": "Teams"
    },
    {
      "description": "# User Management\n\nThe user management API allows control over who has access to a particular organization within MK.IO. \nThese users are invited by email address and can be part of the same company, or can be external to the company.  They will receive an email from MK.IO to let them know that they have been invited, and can begin to collaborate once they have logged in and verified their email address.",
      "name": "User Management"
    },
    {
      "description": "## Webhook Rules\n\nThis API allows you to create and manage webhook rules to receive real-time notifications for various supported events.\n\n\n### How to Configure:\n1. **Define the webhook URL** \u2013 Specify where to send notifications.\n2. **Set authentication details** \u2013 Use the `authentication` section to include sensitive authentication headers or query parameters.\n    - These values will **not** be returned when a user reads the webhook configuration.\n3. **Set additional headers and queryParams** \u2013 Use the top-level `headers` and `queryParams` fields to include any\n non-authentication details if needed.\n4. **Choose the events** \u2013 Select the events for which you want to receive updates.\n\n### Supported Events:\nYou can configure webhooks to receive updates for the following events:\n\n\nMediaKind.JobStarted | MediaKind.JobFinished | MediaKind.StreamingLocatorCreated | MediaKind.ChannelInstanceStarted | MediaKind.ChannelInstanceStopped | MediaKind.ChannelInstanceError | MediaKind.ScheduledOperationAccepted | MediaKind.ScheduledOperationCompleted | MediaKind.ScheduledOperationError | MediaKind.ScheduledOperationOngoing\n\nEvents will be delivered according to the [Cloud Event specification](https://github.com/cloudevents/spec?tab=readme-ov-file),\nsee [our webhook docs](https://docs.mediakind.com/mkio/how-to/managing-your-organization/webhooks) for more information.",
      "name": "Webhook Rules"
    },
    {
      "description": "# Your Profile\n\nThese APIs allow a user to manage their personal account within MK.IO.\n\nCertain fields within a user's profile can be updated directly,\nbut a change to the contact email address requires a verification operation to be performed.\n\nA user may be working with several different MK.IO organizations and the APIs here allow for switching between them,\nmanaging invitations to work with new organizations and leaving them.",
      "name": "Your Profile"
    }
  ]
}